[test] Bump array sizes to 1024 for subgroup matrix tests

This ensures that subgroup matrix load and store builtin calls are in
bounds. The next CL will add robustness for these calls, and we will
then be able to test that no predication is added for the literal
variants of these tests.

Change-Id: I7d2bbcc563d5ec42a7a51f6fba198203c1f1790e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/242554
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl
new file mode 100644
index 0000000..4b8a30a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_015e29() -> subgroup_matrix_right<f32, 8, 8>{
+  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_015e29(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.msl
new file mode 100644
index 0000000..f20cf41
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_015e29(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_015e29(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.spvasm
new file mode 100644
index 0000000..b91e945
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_015e29 "subgroupMatrixLoad_015e29"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_015e29 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_015e29
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_float %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.wgsl
new file mode 100644
index 0000000..9b324a2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_015e29() -> subgroup_matrix_right<f32, 8, 8> {
+  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_015e29(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl
deleted file mode 100644
index d5b38d7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
-fn subgroupMatrixLoad_01c615() -> subgroup_matrix_result<u32, 8, 8>{
-  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_01c615(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.spvasm
deleted file mode 100644
index a9f23f0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.spvasm
+++ /dev/null
@@ -1,77 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_01c615 "subgroupMatrixLoad_01c615"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %18 = OpTypeFunction %14
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%subgroupMatrixLoad_01c615 = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %14 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %14 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %14 %subgroupMatrixLoad_01c615
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_uint %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.wgsl
deleted file mode 100644
index f8ea9cf..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_01c615() -> subgroup_matrix_result<u32, 8, 8> {
-  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_01c615(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl
new file mode 100644
index 0000000..0eeb21a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_06933f() -> subgroup_matrix_left<f16, 8, 8>{
+  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_06933f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.msl
new file mode 100644
index 0000000..6db1245
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_06933f(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_06933f(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.spvasm
new file mode 100644
index 0000000..8dfe9b7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_06933f "subgroupMatrixLoad_06933f"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_06933f = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_06933f
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_half %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.wgsl
new file mode 100644
index 0000000..ff7c946
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_06933f() -> subgroup_matrix_left<f16, 8, 8> {
+  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_06933f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl
deleted file mode 100644
index 97687d7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<workgroup, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
-fn subgroupMatrixLoad_0c84dd() -> subgroup_matrix_left<f16, 8, 8>{
-  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0c84dd(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.msl
deleted file mode 100644
index db9bcc8..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.msl
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_0c84dd(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0h;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_0c84dd(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm
deleted file mode 100644
index 984748f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm
+++ /dev/null
@@ -1,108 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_0c84dd "subgroupMatrixLoad_0c84dd"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-       %bool = OpTypeBool
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_0c84dd = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
-         %24 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %24
-         %27 = OpLoad %15 %res None
-               OpReturnValue %27
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %37
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %38
-               OpStore %53 %half_0x0p_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %43 = OpFunctionCall %15 %subgroupMatrixLoad_0c84dd
-         %44 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_half %44 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %43 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.wgsl
deleted file mode 100644
index 26add10..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixLoad_0c84dd() -> subgroup_matrix_left<f16, 8, 8> {
-  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0c84dd(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl
deleted file mode 100644
index 2bf8ef3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
-fn subgroupMatrixLoad_0d1b2e() -> subgroup_matrix_left<f16, 8, 8>{
-  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0d1b2e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.msl
deleted file mode 100644
index 754e453..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_0d1b2e(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_0d1b2e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.spvasm
deleted file mode 100644
index 5fbc832..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,80 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_0d1b2e "subgroupMatrixLoad_0d1b2e"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%subgroupMatrixLoad_0d1b2e = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_half %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_0d1b2e
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_half %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.wgsl
deleted file mode 100644
index fa72f26..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_0d1b2e() -> subgroup_matrix_left<f16, 8, 8> {
-  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0d1b2e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl
deleted file mode 100644
index 0c27b77..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
-fn subgroupMatrixLoad_0d6e8e() -> subgroup_matrix_left<u32, 8, 8>{
-  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0d6e8e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.spvasm
deleted file mode 100644
index 1b760da..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,78 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_0d6e8e "subgroupMatrixLoad_0d6e8e"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-               OpDecorate %7 NonWritable
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %18 = OpTypeFunction %14
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
-%subgroupMatrixLoad_0d6e8e = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_1
-         %25 = OpCooperativeMatrixLoadKHR %14 %22 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %25
-         %28 = OpLoad %14 %res None
-               OpReturnValue %28
-               OpFunctionEnd
-%compute_main = OpFunction %void None %31
-         %32 = OpLabel
-         %33 = OpFunctionCall %14 %subgroupMatrixLoad_0d6e8e
-         %34 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %36 = OpAccessChain %_ptr_StorageBuffer_uint_0 %34 %uint_0
-               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.wgsl
deleted file mode 100644
index 8ab39cf..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_0d6e8e() -> subgroup_matrix_left<u32, 8, 8> {
-  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0d6e8e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl
deleted file mode 100644
index badb0e9..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
-fn subgroupMatrixLoad_0decf8() -> subgroup_matrix_right<f16, 8, 8>{
-  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0decf8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.msl
deleted file mode 100644
index 034d36a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_0decf8(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_0decf8(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.spvasm
deleted file mode 100644
index c52d3e2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,82 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_0decf8 "subgroupMatrixLoad_0decf8"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
-%subgroupMatrixLoad_0decf8 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_half %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_0decf8
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_half_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.wgsl
deleted file mode 100644
index 123bdf3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0decf8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_0decf8() -> subgroup_matrix_right<f16, 8, 8> {
-  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0decf8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl
new file mode 100644
index 0000000..f971937
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_0f48aa() -> subgroup_matrix_result<f32, 8, 8>{
+  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0f48aa(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.msl
new file mode 100644
index 0000000..2f06c80
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_0f48aa(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_0f48aa(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.spvasm
new file mode 100644
index 0000000..3007fc9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.spvasm
@@ -0,0 +1,78 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 40
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_0f48aa "subgroupMatrixLoad_0f48aa"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024_0 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_0f48aa = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+         %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %25
+         %28 = OpLoad %13 %res None
+               OpReturnValue %28
+               OpFunctionEnd
+%compute_main = OpFunction %void None %31
+         %32 = OpLabel
+         %33 = OpFunctionCall %13 %subgroupMatrixLoad_0f48aa
+         %34 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024_0 %1 %uint_0
+         %36 = OpAccessChain %_ptr_StorageBuffer_float_0 %34 %uint_0
+               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.wgsl
new file mode 100644
index 0000000..a4f9e53
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_0f48aa() -> subgroup_matrix_result<f32, 8, 8> {
+  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0f48aa(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl
deleted file mode 100644
index 9d989e7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
-fn subgroupMatrixLoad_1042d8() -> subgroup_matrix_result<f16, 8, 8>{
-  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_1042d8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.msl
deleted file mode 100644
index cc79a7b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_1042d8(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_1042d8(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.spvasm
deleted file mode 100644
index 7e4b152..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,83 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 41
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_1042d8 "subgroupMatrixLoad_1042d8"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %33 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
-%subgroupMatrixLoad_1042d8 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_half %21 %uint_1
-         %27 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %15 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main = OpFunction %void None %33
-         %34 = OpLabel
-         %35 = OpFunctionCall %15 %subgroupMatrixLoad_1042d8
-         %36 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %38 = OpAccessChain %_ptr_StorageBuffer_half_0 %36 %uint_0
-               OpCooperativeMatrixStoreKHR %38 %35 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.wgsl
deleted file mode 100644
index 21e79dd..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1042d8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_1042d8() -> subgroup_matrix_result<f16, 8, 8> {
-  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_1042d8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl
new file mode 100644
index 0000000..bfdf02d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_119c99() -> subgroup_matrix_right<i32, 8, 8>{
+  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_119c99(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.spvasm
new file mode 100644
index 0000000..43b354b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_119c99 "subgroupMatrixLoad_119c99"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_119c99 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_119c99
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_int %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.wgsl
new file mode 100644
index 0000000..9eb33b0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_119c99() -> subgroup_matrix_right<i32, 8, 8> {
+  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_119c99(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl
new file mode 100644
index 0000000..b3fe4d4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_11bb4b() -> subgroup_matrix_result<f16, 8, 8>{
+  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_11bb4b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.msl
new file mode 100644
index 0000000..489b5bd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_11bb4b(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_11bb4b(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.spvasm
new file mode 100644
index 0000000..e83a7b6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.spvasm
@@ -0,0 +1,78 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_11bb4b "subgroupMatrixLoad_11bb4b"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_11bb4b = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+         %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %25
+         %28 = OpLoad %13 %res None
+               OpReturnValue %28
+               OpFunctionEnd
+%compute_main = OpFunction %void None %31
+         %32 = OpLabel
+         %33 = OpFunctionCall %13 %subgroupMatrixLoad_11bb4b
+         %34 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_half %34 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %33 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.wgsl
new file mode 100644
index 0000000..f026e31
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_11bb4b() -> subgroup_matrix_result<f16, 8, 8> {
+  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_11bb4b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl
deleted file mode 100644
index d1c27b0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
-fn subgroupMatrixLoad_11c1db() -> subgroup_matrix_left<f16, 8, 8>{
-  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_11c1db(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.msl
deleted file mode 100644
index 5269a73..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_11c1db(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_11c1db(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.spvasm
deleted file mode 100644
index f239d94..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.spvasm
+++ /dev/null
@@ -1,82 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_11c1db "subgroupMatrixLoad_11c1db"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
-%subgroupMatrixLoad_11c1db = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_half %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_11c1db
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_half_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.wgsl
deleted file mode 100644
index 1e02778..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11c1db.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_11c1db() -> subgroup_matrix_left<f16, 8, 8> {
-  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_11c1db(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl
new file mode 100644
index 0000000..370dbfa
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl
@@ -0,0 +1,56 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<workgroup, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_12b63e() -> subgroup_matrix_right<f16, 8, 8>{
+  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_12b63e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.msl
new file mode 100644
index 0000000..012de0f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.msl
@@ -0,0 +1,55 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_12b63e(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0h;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_12b63e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.spvasm
new file mode 100644
index 0000000..3e356d1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_12b63e "subgroupMatrixLoad_12b63e"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_half_uint_1024_0 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024_0 = OpTypePointer Workgroup %_arr_half_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_12b63e = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
+         %22 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %22
+         %25 = OpLoad %14 %res None
+               OpReturnValue %25
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %29
+%tint_local_index = OpFunctionParameter %uint
+         %30 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+         %36 = OpPhi %uint %tint_local_index %31 %37 %33
+               OpLoopMerge %35 %33 None
+               OpBranch %32
+         %32 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %36 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %35
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %36
+               OpStore %53 %half_0x0p_0 NonPrivatePointer
+               OpBranch %33
+         %33 = OpLabel
+         %37 = OpIAdd %uint %36 %uint_1
+               OpBranch %34
+         %35 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %14 %subgroupMatrixLoad_12b63e
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_half %42 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.wgsl
new file mode 100644
index 0000000..c41b55a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixLoad_12b63e() -> subgroup_matrix_right<f16, 8, 8> {
+  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_12b63e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl
deleted file mode 100644
index 635074e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
-fn subgroupMatrixLoad_133af8() -> subgroup_matrix_left<f32, 8, 8>{
-  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_133af8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.msl
deleted file mode 100644
index fe7c1d3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_133af8(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_133af8(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.spvasm
deleted file mode 100644
index 1e09c69..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,77 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_133af8 "subgroupMatrixLoad_133af8"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%subgroupMatrixLoad_133af8 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_133af8
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_float %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.wgsl
deleted file mode 100644
index 8aba5a7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/133af8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_133af8() -> subgroup_matrix_left<f32, 8, 8> {
-  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_133af8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl
deleted file mode 100644
index 7d6056e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<workgroup, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
-fn subgroupMatrixLoad_139ad7() -> subgroup_matrix_right<f16, 8, 8>{
-  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_139ad7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.msl
deleted file mode 100644
index df78f7c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.msl
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_139ad7(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0h;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_139ad7(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm
deleted file mode 100644
index e1b9a22..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,108 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_139ad7 "subgroupMatrixLoad_139ad7"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %30 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-       %bool = OpTypeBool
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_139ad7 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
-         %23 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %23
-         %26 = OpLoad %15 %res None
-               OpReturnValue %26
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %30
-%tint_local_index = OpFunctionParameter %uint
-         %31 = OpLabel
-               OpBranch %32
-         %32 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-         %37 = OpPhi %uint %tint_local_index %32 %38 %34
-               OpLoopMerge %36 %34 None
-               OpBranch %33
-         %33 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %37 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %36
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %37
-               OpStore %53 %half_0x0p_0 NonPrivatePointer
-               OpBranch %34
-         %34 = OpLabel
-         %38 = OpIAdd %uint %37 %uint_1
-               OpBranch %35
-         %36 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %15 %subgroupMatrixLoad_139ad7
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_half %43 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.wgsl
deleted file mode 100644
index b84667d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixLoad_139ad7() -> subgroup_matrix_right<f16, 8, 8> {
-  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_139ad7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl
deleted file mode 100644
index 2bc1a13..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
-fn subgroupMatrixLoad_159294() -> subgroup_matrix_result<f16, 8, 8>{
-  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_159294(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.msl
deleted file mode 100644
index a050ea0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_159294(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_159294(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.spvasm
deleted file mode 100644
index 364fc8e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.spvasm
+++ /dev/null
@@ -1,81 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_159294 "subgroupMatrixLoad_159294"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %33 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%subgroupMatrixLoad_159294 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_half %21 %uint_1
-         %27 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %15 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main = OpFunction %void None %33
-         %34 = OpLabel
-         %35 = OpFunctionCall %15 %subgroupMatrixLoad_159294
-         %36 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %38 = OpAccessChain %_ptr_StorageBuffer_half %36 %uint_0
-               OpCooperativeMatrixStoreKHR %38 %35 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.wgsl
deleted file mode 100644
index af02c04..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/159294.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_159294() -> subgroup_matrix_result<f16, 8, 8> {
-  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_159294(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl
deleted file mode 100644
index ff8955f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
-fn subgroupMatrixLoad_17a50d() -> subgroup_matrix_left<u32, 8, 8>{
-  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_17a50d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.spvasm
deleted file mode 100644
index dfd213d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.spvasm
+++ /dev/null
@@ -1,76 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 38
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_17a50d "subgroupMatrixLoad_17a50d"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %18 = OpTypeFunction %14
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%subgroupMatrixLoad_17a50d = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_1
-         %25 = OpCooperativeMatrixLoadKHR %14 %22 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %25
-         %28 = OpLoad %14 %res None
-               OpReturnValue %28
-               OpFunctionEnd
-%compute_main = OpFunction %void None %31
-         %32 = OpLabel
-         %33 = OpFunctionCall %14 %subgroupMatrixLoad_17a50d
-         %34 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %36 = OpAccessChain %_ptr_StorageBuffer_uint %34 %uint_0
-               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.wgsl
deleted file mode 100644
index 4b4129b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/17a50d.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_17a50d() -> subgroup_matrix_left<u32, 8, 8> {
-  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_17a50d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl
new file mode 100644
index 0000000..e7767ec
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl
@@ -0,0 +1,56 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<workgroup, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_1a0572() -> subgroup_matrix_result<f16, 8, 8>{
+  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_1a0572(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.msl
new file mode 100644
index 0000000..ef9b903
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.msl
@@ -0,0 +1,55 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_1a0572(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0h;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_1a0572(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.spvasm
new file mode 100644
index 0000000..504de8d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_1a0572 "subgroupMatrixLoad_1a0572"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_half_uint_1024_0 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024_0 = OpTypePointer Workgroup %_arr_half_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_1a0572 = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %14 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %30
+%tint_local_index = OpFunctionParameter %uint
+         %31 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %37 = OpPhi %uint %tint_local_index %32 %38 %34
+               OpLoopMerge %36 %34 None
+               OpBranch %33
+         %33 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %37 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %36
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %37
+               OpStore %53 %half_0x0p_0 NonPrivatePointer
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpIAdd %uint %37 %uint_1
+               OpBranch %35
+         %36 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %14 %subgroupMatrixLoad_1a0572
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_half %42 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.wgsl
new file mode 100644
index 0000000..0b0b032
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixLoad_1a0572() -> subgroup_matrix_result<f16, 8, 8> {
+  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_1a0572(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl
new file mode 100644
index 0000000..442b4b5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_23385e() -> subgroup_matrix_right<u32, 8, 8>{
+  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_23385e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0d6e8e.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.spvasm
new file mode 100644
index 0000000..9211533
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_23385e "subgroupMatrixLoad_23385e"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_23385e = OpFunction %12 None %16
+         %17 = OpLabel
+        %res = OpVariable %_ptr_Function_12 Function
+         %18 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %12 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main = OpFunction %void None %29
+         %30 = OpLabel
+         %31 = OpFunctionCall %12 %subgroupMatrixLoad_23385e
+         %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %33 = OpAccessChain %_ptr_StorageBuffer_uint %32 %uint_0
+               OpCooperativeMatrixStoreKHR %33 %31 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.wgsl
new file mode 100644
index 0000000..15cf463
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_23385e() -> subgroup_matrix_right<u32, 8, 8> {
+  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_23385e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl
deleted file mode 100644
index b76ec00..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<workgroup, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
-fn subgroupMatrixLoad_37b559() -> subgroup_matrix_right<f32, 8, 8>{
-  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_37b559(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.msl
deleted file mode 100644
index 266afe8..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.msl
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_37b559(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0f;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_37b559(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm
deleted file mode 100644
index 448518b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.spvasm
+++ /dev/null
@@ -1,105 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_37b559 "subgroupMatrixLoad_37b559"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %30 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-       %bool = OpTypeBool
-    %float_0 = OpConstant %float 0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_37b559 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
-         %23 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %23
-         %26 = OpLoad %15 %res None
-               OpReturnValue %26
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %30
-%tint_local_index = OpFunctionParameter %uint
-         %31 = OpLabel
-               OpBranch %32
-         %32 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-         %37 = OpPhi %uint %tint_local_index %32 %38 %34
-               OpLoopMerge %36 %34 None
-               OpBranch %33
-         %33 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %37 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %36
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %37
-               OpStore %53 %float_0 NonPrivatePointer
-               OpBranch %34
-         %34 = OpLabel
-         %38 = OpIAdd %uint %37 %uint_1
-               OpBranch %35
-         %36 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %15 %subgroupMatrixLoad_37b559
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_float %43 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.wgsl
deleted file mode 100644
index fa14c56..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixLoad_37b559() -> subgroup_matrix_right<f32, 8, 8> {
-  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_37b559(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl
deleted file mode 100644
index 3890290..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
-fn subgroupMatrixLoad_3a046e() -> subgroup_matrix_right<f16, 8, 8>{
-  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_3a046e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.msl
deleted file mode 100644
index dd19b7a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_3a046e(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_3a046e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.spvasm
deleted file mode 100644
index 20a346e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,80 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_3a046e "subgroupMatrixLoad_3a046e"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%subgroupMatrixLoad_3a046e = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_half %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_3a046e
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_half %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.wgsl
deleted file mode 100644
index ead8fa0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3a046e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_3a046e() -> subgroup_matrix_right<f16, 8, 8> {
-  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_3a046e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl
new file mode 100644
index 0000000..fb48b8b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_42db25() -> subgroup_matrix_result<u32, 8, 8>{
+  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_42db25(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.spvasm
new file mode 100644
index 0000000..c3b6c81
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_42db25 "subgroupMatrixLoad_42db25"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+               OpDecorate %7 NonWritable
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024_0 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_42db25 = OpFunction %12 None %16
+         %17 = OpLabel
+        %res = OpVariable %_ptr_Function_12 Function
+         %18 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %12 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %12 %subgroupMatrixLoad_42db25
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_uint_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.wgsl
new file mode 100644
index 0000000..e81a995
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_42db25() -> subgroup_matrix_result<u32, 8, 8> {
+  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_42db25(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl
new file mode 100644
index 0000000..dfcce8e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_43c097() -> subgroup_matrix_result<i32, 8, 8>{
+  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_43c097(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.spvasm
new file mode 100644
index 0000000..34c7a80
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_43c097 "subgroupMatrixLoad_43c097"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_43c097 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+         %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %25
+         %28 = OpLoad %13 %res None
+               OpReturnValue %28
+               OpFunctionEnd
+%compute_main = OpFunction %void None %31
+         %32 = OpLabel
+         %33 = OpFunctionCall %13 %subgroupMatrixLoad_43c097
+         %34 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_int %34 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %33 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.wgsl
new file mode 100644
index 0000000..5b83801
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_43c097() -> subgroup_matrix_result<i32, 8, 8> {
+  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_43c097(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl
new file mode 100644
index 0000000..8ca2627
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<workgroup, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_459957() -> subgroup_matrix_result<f32, 8, 8>{
+  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_459957(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.msl
new file mode 100644
index 0000000..e8ee0ac
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.msl
@@ -0,0 +1,55 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_459957(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0f;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_459957(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.spvasm
new file mode 100644
index 0000000..c6d83c1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.spvasm
@@ -0,0 +1,105 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_459957 "subgroupMatrixLoad_459957"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_float_uint_1024_0 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024_0 = OpTypePointer Workgroup %_arr_float_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+    %float_0 = OpConstant %float 0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_459957 = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %14 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %30
+%tint_local_index = OpFunctionParameter %uint
+         %31 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %37 = OpPhi %uint %tint_local_index %32 %38 %34
+               OpLoopMerge %36 %34 None
+               OpBranch %33
+         %33 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %37 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %36
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %37
+               OpStore %53 %float_0 NonPrivatePointer
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpIAdd %uint %37 %uint_1
+               OpBranch %35
+         %36 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %14 %subgroupMatrixLoad_459957
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_float %42 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.wgsl
new file mode 100644
index 0000000..098c6a0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixLoad_459957() -> subgroup_matrix_result<f32, 8, 8> {
+  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_459957(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl
deleted file mode 100644
index 83fd0fa..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<workgroup, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
-fn subgroupMatrixLoad_4c307c() -> subgroup_matrix_result<i32, 8, 8>{
-  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_4c307c(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm
deleted file mode 100644
index 09304fc..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm
+++ /dev/null
@@ -1,105 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_4c307c "subgroupMatrixLoad_4c307c"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-       %bool = OpTypeBool
-      %int_0 = OpConstant %int 0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_4c307c = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
-         %24 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %24
-         %27 = OpLoad %15 %res None
-               OpReturnValue %27
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %37
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %38
-               OpStore %53 %int_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %15 %subgroupMatrixLoad_4c307c
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_int %43 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.wgsl
deleted file mode 100644
index c19ef84..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixLoad_4c307c() -> subgroup_matrix_result<i32, 8, 8> {
-  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_4c307c(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl
deleted file mode 100644
index 52d7878..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
-fn subgroupMatrixLoad_4d29e6() -> subgroup_matrix_right<u32, 8, 8>{
-  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_4d29e6(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.spvasm
deleted file mode 100644
index 2cb974d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.spvasm
+++ /dev/null
@@ -1,78 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_4d29e6 "subgroupMatrixLoad_4d29e6"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-               OpDecorate %7 NonWritable
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %18 = OpTypeFunction %14
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
-%subgroupMatrixLoad_4d29e6 = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_1
-         %25 = OpCooperativeMatrixLoadKHR %14 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %25
-         %28 = OpLoad %14 %res None
-               OpReturnValue %28
-               OpFunctionEnd
-%compute_main = OpFunction %void None %31
-         %32 = OpLabel
-         %33 = OpFunctionCall %14 %subgroupMatrixLoad_4d29e6
-         %34 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %36 = OpAccessChain %_ptr_StorageBuffer_uint_0 %34 %uint_0
-               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.wgsl
deleted file mode 100644
index eaa78f7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_4d29e6() -> subgroup_matrix_right<u32, 8, 8> {
-  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_4d29e6(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl
new file mode 100644
index 0000000..68fe1ac
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_4fd336() -> subgroup_matrix_right<f32, 8, 8>{
+  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_4fd336(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.msl
new file mode 100644
index 0000000..bcac90f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_4fd336(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_4fd336(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.spvasm
new file mode 100644
index 0000000..ec4c35c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_4fd336 "subgroupMatrixLoad_4fd336"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024_0 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_4fd336 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_4fd336
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_float_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.wgsl
new file mode 100644
index 0000000..678ae09
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_4fd336() -> subgroup_matrix_right<f32, 8, 8> {
+  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_4fd336(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl
new file mode 100644
index 0000000..169dd0b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_52acb0() -> subgroup_matrix_right<f16, 8, 8>{
+  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_52acb0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.msl
new file mode 100644
index 0000000..f738a1f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_52acb0(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_52acb0(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.spvasm
new file mode 100644
index 0000000..123dda0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_52acb0 "subgroupMatrixLoad_52acb0"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_52acb0 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_52acb0
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_half %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.wgsl
new file mode 100644
index 0000000..c320f1a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_52acb0() -> subgroup_matrix_right<f16, 8, 8> {
+  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_52acb0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl
deleted file mode 100644
index ef5b0de..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
-fn subgroupMatrixLoad_58d7e2() -> subgroup_matrix_right<u32, 8, 8>{
-  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_58d7e2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.spvasm
deleted file mode 100644
index 9810d29..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,76 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 38
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_58d7e2 "subgroupMatrixLoad_58d7e2"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %18 = OpTypeFunction %14
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%subgroupMatrixLoad_58d7e2 = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_1
-         %25 = OpCooperativeMatrixLoadKHR %14 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %25
-         %28 = OpLoad %14 %res None
-               OpReturnValue %28
-               OpFunctionEnd
-%compute_main = OpFunction %void None %31
-         %32 = OpLabel
-         %33 = OpFunctionCall %14 %subgroupMatrixLoad_58d7e2
-         %34 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %36 = OpAccessChain %_ptr_StorageBuffer_uint %34 %uint_0
-               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.wgsl
deleted file mode 100644
index 5c7140a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_58d7e2() -> subgroup_matrix_right<u32, 8, 8> {
-  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_58d7e2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl
deleted file mode 100644
index 8a0ee9f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
-fn subgroupMatrixLoad_5aaf3b() -> subgroup_matrix_result<i32, 8, 8>{
-  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5aaf3b(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.spvasm
deleted file mode 100644
index 58568e5..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.spvasm
+++ /dev/null
@@ -1,78 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_5aaf3b "subgroupMatrixLoad_5aaf3b"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %33 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%subgroupMatrixLoad_5aaf3b = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_int %21 %uint_1
-         %27 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %15 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main = OpFunction %void None %33
-         %34 = OpLabel
-         %35 = OpFunctionCall %15 %subgroupMatrixLoad_5aaf3b
-         %36 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %38 = OpAccessChain %_ptr_StorageBuffer_int %36 %uint_0
-               OpCooperativeMatrixStoreKHR %38 %35 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.wgsl
deleted file mode 100644
index 994a54e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5aaf3b.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_5aaf3b() -> subgroup_matrix_result<i32, 8, 8> {
-  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5aaf3b(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl
new file mode 100644
index 0000000..b9c8fec
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<workgroup, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_5c0896() -> subgroup_matrix_left<f32, 8, 8>{
+  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5c0896(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.msl
new file mode 100644
index 0000000..acbc1ce
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.msl
@@ -0,0 +1,55 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_5c0896(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0f;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_5c0896(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.spvasm
new file mode 100644
index 0000000..57d7873
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.spvasm
@@ -0,0 +1,105 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_5c0896 "subgroupMatrixLoad_5c0896"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_float_uint_1024_0 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024_0 = OpTypePointer Workgroup %_arr_float_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+    %float_0 = OpConstant %float 0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_5c0896 = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %14 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %30
+%tint_local_index = OpFunctionParameter %uint
+         %31 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %37 = OpPhi %uint %tint_local_index %32 %38 %34
+               OpLoopMerge %36 %34 None
+               OpBranch %33
+         %33 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %37 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %36
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %37
+               OpStore %53 %float_0 NonPrivatePointer
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpIAdd %uint %37 %uint_1
+               OpBranch %35
+         %36 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %42 = OpFunctionCall %14 %subgroupMatrixLoad_5c0896
+         %43 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_float %43 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %42 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.wgsl
new file mode 100644
index 0000000..2033bb1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixLoad_5c0896() -> subgroup_matrix_left<f32, 8, 8> {
+  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5c0896(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl
deleted file mode 100644
index 8470a42..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<workgroup, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
-fn subgroupMatrixLoad_641635() -> subgroup_matrix_result<u32, 8, 8>{
-  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_641635(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm
deleted file mode 100644
index ffae611..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.spvasm
+++ /dev/null
@@ -1,103 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 58
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_641635 "subgroupMatrixLoad_641635"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %18 = OpTypeFunction %14
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %30 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %bool = OpTypeBool
-         %54 = OpTypeFunction %void
-%subgroupMatrixLoad_641635 = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
-         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %23
-         %26 = OpLoad %14 %res None
-               OpReturnValue %26
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %30
-%tint_local_index = OpFunctionParameter %uint
-         %31 = OpLabel
-               OpBranch %32
-         %32 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-         %37 = OpPhi %uint %tint_local_index %32 %38 %34
-               OpLoopMerge %36 %34 None
-               OpBranch %33
-         %33 = OpLabel
-         %48 = OpUGreaterThanEqual %bool %37 %uint_64
-               OpSelectionMerge %50 None
-               OpBranchConditional %48 %51 %50
-         %51 = OpLabel
-               OpBranch %36
-         %50 = OpLabel
-         %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %37
-               OpStore %52 %uint_0 NonPrivatePointer
-               OpBranch %34
-         %34 = OpLabel
-         %38 = OpIAdd %uint %37 %uint_1
-               OpBranch %35
-         %36 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %41 = OpFunctionCall %14 %subgroupMatrixLoad_641635
-         %42 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %45 = OpAccessChain %_ptr_StorageBuffer_uint %42 %uint_0
-               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %54
-         %55 = OpLabel
-         %56 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %57 = OpFunctionCall %void %compute_main_inner %56
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.wgsl
deleted file mode 100644
index 386a304..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/641635.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixLoad_641635() -> subgroup_matrix_result<u32, 8, 8> {
-  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_641635(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl
new file mode 100644
index 0000000..8a84478
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_6432c6() -> subgroup_matrix_left<u32, 8, 8>{
+  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6432c6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.spvasm
new file mode 100644
index 0000000..4d1f068
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_6432c6 "subgroupMatrixLoad_6432c6"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_6432c6 = OpFunction %12 None %16
+         %17 = OpLabel
+        %res = OpVariable %_ptr_Function_12 Function
+         %18 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %20 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %12 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %12 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main = OpFunction %void None %29
+         %30 = OpLabel
+         %31 = OpFunctionCall %12 %subgroupMatrixLoad_6432c6
+         %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %33 = OpAccessChain %_ptr_StorageBuffer_uint %32 %uint_0
+               OpCooperativeMatrixStoreKHR %33 %31 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.wgsl
new file mode 100644
index 0000000..b3a2e4e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_6432c6() -> subgroup_matrix_left<u32, 8, 8> {
+  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6432c6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl
deleted file mode 100644
index 8b0eadd..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<workgroup, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
-fn subgroupMatrixLoad_67af87() -> subgroup_matrix_left<i32, 8, 8>{
-  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_67af87(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm
deleted file mode 100644
index 570fb97..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.spvasm
+++ /dev/null
@@ -1,105 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_67af87 "subgroupMatrixLoad_67af87"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-       %bool = OpTypeBool
-      %int_0 = OpConstant %int 0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_67af87 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
-         %24 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %24
-         %27 = OpLoad %15 %res None
-               OpReturnValue %27
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %37
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %38
-               OpStore %53 %int_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %43 = OpFunctionCall %15 %subgroupMatrixLoad_67af87
-         %44 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_int %44 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %43 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.wgsl
deleted file mode 100644
index 48933cf..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixLoad_67af87() -> subgroup_matrix_left<i32, 8, 8> {
-  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_67af87(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl
new file mode 100644
index 0000000..170e3e8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_7bacd3() -> subgroup_matrix_result<f32, 8, 8>{
+  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_7bacd3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.msl
new file mode 100644
index 0000000..a920c7a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_7bacd3(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_7bacd3(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.spvasm
new file mode 100644
index 0000000..98b0160
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_7bacd3 "subgroupMatrixLoad_7bacd3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_7bacd3 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+         %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %25
+         %28 = OpLoad %13 %res None
+               OpReturnValue %28
+               OpFunctionEnd
+%compute_main = OpFunction %void None %31
+         %32 = OpLabel
+         %33 = OpFunctionCall %13 %subgroupMatrixLoad_7bacd3
+         %34 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_float %34 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %33 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.wgsl
new file mode 100644
index 0000000..fadce6d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_7bacd3() -> subgroup_matrix_result<f32, 8, 8> {
+  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_7bacd3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl
new file mode 100644
index 0000000..0a18378
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_7bb257() -> subgroup_matrix_left<i32, 8, 8>{
+  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_7bb257(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/67af87.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.spvasm
new file mode 100644
index 0000000..75c5d7d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.spvasm
@@ -0,0 +1,105 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_7bb257 "subgroupMatrixLoad_7bb257"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_int_uint_1024_0 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024_0 = OpTypePointer Workgroup %_arr_int_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_7bb257 = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %14 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %30
+%tint_local_index = OpFunctionParameter %uint
+         %31 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %37 = OpPhi %uint %tint_local_index %32 %38 %34
+               OpLoopMerge %36 %34 None
+               OpBranch %33
+         %33 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %37 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %36
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %37
+               OpStore %53 %int_0 NonPrivatePointer
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpIAdd %uint %37 %uint_1
+               OpBranch %35
+         %36 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %42 = OpFunctionCall %14 %subgroupMatrixLoad_7bb257
+         %43 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_int %43 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %42 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.wgsl
new file mode 100644
index 0000000..074ab1a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixLoad_7bb257() -> subgroup_matrix_left<i32, 8, 8> {
+  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_7bb257(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl
deleted file mode 100644
index 827695b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
-fn subgroupMatrixLoad_8145a5() -> subgroup_matrix_right<i32, 8, 8>{
-  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8145a5(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.spvasm
deleted file mode 100644
index aca21c2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.spvasm
+++ /dev/null
@@ -1,77 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8145a5 "subgroupMatrixLoad_8145a5"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%subgroupMatrixLoad_8145a5 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_int %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_8145a5
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_int %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.wgsl
deleted file mode 100644
index b868336..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8145a5.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_8145a5() -> subgroup_matrix_right<i32, 8, 8> {
-  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8145a5(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl
deleted file mode 100644
index 568d1d4..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
-fn subgroupMatrixLoad_8403c3() -> subgroup_matrix_right<f32, 8, 8>{
-  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8403c3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.msl
deleted file mode 100644
index a262e40..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_8403c3(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_8403c3(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.spvasm
deleted file mode 100644
index 9b04894..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.spvasm
+++ /dev/null
@@ -1,79 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8403c3 "subgroupMatrixLoad_8403c3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
-%subgroupMatrixLoad_8403c3 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_8403c3
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_float_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.wgsl
deleted file mode 100644
index 6c5508e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_8403c3() -> subgroup_matrix_right<f32, 8, 8> {
-  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8403c3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl
new file mode 100644
index 0000000..77cf12f7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_85fc76() -> subgroup_matrix_left<u32, 8, 8>{
+  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_85fc76(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.spvasm
new file mode 100644
index 0000000..cf90c4c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_85fc76 "subgroupMatrixLoad_85fc76"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+               OpDecorate %7 NonWritable
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024_0 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_85fc76 = OpFunction %12 None %16
+         %17 = OpLabel
+        %res = OpVariable %_ptr_Function_12 Function
+         %18 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %20 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %12 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %12 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main = OpFunction %void None %29
+         %30 = OpLabel
+         %31 = OpFunctionCall %12 %subgroupMatrixLoad_85fc76
+         %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024_0 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_uint_0 %32 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %31 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.wgsl
new file mode 100644
index 0000000..b458af6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_85fc76() -> subgroup_matrix_left<u32, 8, 8> {
+  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_85fc76(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl
new file mode 100644
index 0000000..258e9cd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_865a3c() -> subgroup_matrix_right<i32, 8, 8>{
+  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_865a3c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.spvasm
new file mode 100644
index 0000000..4967a06
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_865a3c "subgroupMatrixLoad_865a3c"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024_0 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_865a3c = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_865a3c
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_int_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.wgsl
new file mode 100644
index 0000000..93a5600
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_865a3c() -> subgroup_matrix_right<i32, 8, 8> {
+  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_865a3c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl
deleted file mode 100644
index 4b4adda..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
-fn subgroupMatrixLoad_8bd09e() -> subgroup_matrix_right<i32, 8, 8>{
-  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8bd09e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.spvasm
deleted file mode 100644
index fe5b6db..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,79 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8bd09e "subgroupMatrixLoad_8bd09e"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
-%subgroupMatrixLoad_8bd09e = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_int %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_8bd09e
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_int_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.wgsl
deleted file mode 100644
index d37e53a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bd09e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_8bd09e() -> subgroup_matrix_right<i32, 8, 8> {
-  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8bd09e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl
deleted file mode 100644
index f4dfa18..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
-fn subgroupMatrixLoad_8bf049() -> subgroup_matrix_left<i32, 8, 8>{
-  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8bf049(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.spvasm
deleted file mode 100644
index 88e0db2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.spvasm
+++ /dev/null
@@ -1,77 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8bf049 "subgroupMatrixLoad_8bf049"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%subgroupMatrixLoad_8bf049 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_int %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_8bf049
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_int %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.wgsl
deleted file mode 100644
index 3839c3b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_8bf049() -> subgroup_matrix_left<i32, 8, 8> {
-  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8bf049(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl
new file mode 100644
index 0000000..0d887af
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_8ec8ba() -> subgroup_matrix_left<f32, 8, 8>{
+  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8ec8ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.msl
new file mode 100644
index 0000000..8a9d894
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_8ec8ba(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_8ec8ba(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.spvasm
new file mode 100644
index 0000000..d73988c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_8ec8ba "subgroupMatrixLoad_8ec8ba"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024_0 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_8ec8ba = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_8ec8ba
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_float_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.wgsl
new file mode 100644
index 0000000..d966a48
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_8ec8ba() -> subgroup_matrix_left<f32, 8, 8> {
+  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8ec8ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl
deleted file mode 100644
index c6adced..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<workgroup, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
-fn subgroupMatrixLoad_93fa82() -> subgroup_matrix_right<u32, 8, 8>{
-  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_93fa82(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm
deleted file mode 100644
index 81a89db..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm
+++ /dev/null
@@ -1,103 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 58
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_93fa82 "subgroupMatrixLoad_93fa82"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %18 = OpTypeFunction %14
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %29 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %bool = OpTypeBool
-         %54 = OpTypeFunction %void
-%subgroupMatrixLoad_93fa82 = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
-         %22 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %22
-         %25 = OpLoad %14 %res None
-               OpReturnValue %25
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %29
-%tint_local_index = OpFunctionParameter %uint
-         %30 = OpLabel
-               OpBranch %31
-         %31 = OpLabel
-               OpBranch %34
-         %34 = OpLabel
-         %36 = OpPhi %uint %tint_local_index %31 %37 %33
-               OpLoopMerge %35 %33 None
-               OpBranch %32
-         %32 = OpLabel
-         %48 = OpUGreaterThanEqual %bool %36 %uint_64
-               OpSelectionMerge %50 None
-               OpBranchConditional %48 %51 %50
-         %51 = OpLabel
-               OpBranch %35
-         %50 = OpLabel
-         %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %36
-               OpStore %52 %uint_0 NonPrivatePointer
-               OpBranch %33
-         %33 = OpLabel
-         %37 = OpIAdd %uint %36 %uint_1
-               OpBranch %34
-         %35 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %41 = OpFunctionCall %14 %subgroupMatrixLoad_93fa82
-         %42 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %45 = OpAccessChain %_ptr_StorageBuffer_uint %42 %uint_0
-               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %54
-         %55 = OpLabel
-         %56 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %57 = OpFunctionCall %void %compute_main_inner %56
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.wgsl
deleted file mode 100644
index abd697d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/93fa82.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixLoad_93fa82() -> subgroup_matrix_right<u32, 8, 8> {
-  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_93fa82(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl
deleted file mode 100644
index 426114f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
-fn subgroupMatrixLoad_943cd7() -> subgroup_matrix_result<u32, 8, 8>{
-  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_943cd7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.spvasm
deleted file mode 100644
index 1df9815..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,79 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_943cd7 "subgroupMatrixLoad_943cd7"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-               OpDecorate %7 NonWritable
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %18 = OpTypeFunction %14
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
-%subgroupMatrixLoad_943cd7 = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %14 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %14 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %14 %subgroupMatrixLoad_943cd7
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_uint_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.wgsl
deleted file mode 100644
index c626452..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/943cd7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_943cd7() -> subgroup_matrix_result<u32, 8, 8> {
-  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_943cd7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl
new file mode 100644
index 0000000..087b941
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_99d2a2() -> subgroup_matrix_result<u32, 8, 8>{
+  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_99d2a2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.spvasm
new file mode 100644
index 0000000..b782df7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_99d2a2 "subgroupMatrixLoad_99d2a2"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_99d2a2 = OpFunction %12 None %16
+         %17 = OpLabel
+        %res = OpVariable %_ptr_Function_12 Function
+         %18 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %12 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %12 %subgroupMatrixLoad_99d2a2
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_uint %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.wgsl
new file mode 100644
index 0000000..baf4271
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_99d2a2() -> subgroup_matrix_result<u32, 8, 8> {
+  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_99d2a2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl
deleted file mode 100644
index a54f902..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
-fn subgroupMatrixLoad_9c361d() -> subgroup_matrix_result<f32, 8, 8>{
-  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9c361d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.msl
deleted file mode 100644
index 4684b0e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_9c361d(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_9c361d(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.spvasm
deleted file mode 100644
index 9847356..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.spvasm
+++ /dev/null
@@ -1,78 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_9c361d "subgroupMatrixLoad_9c361d"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %33 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%subgroupMatrixLoad_9c361d = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_1
-         %27 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %15 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main = OpFunction %void None %33
-         %34 = OpLabel
-         %35 = OpFunctionCall %15 %subgroupMatrixLoad_9c361d
-         %36 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %38 = OpAccessChain %_ptr_StorageBuffer_float %36 %uint_0
-               OpCooperativeMatrixStoreKHR %38 %35 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.wgsl
deleted file mode 100644
index 8f7d3bf..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c361d.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_9c361d() -> subgroup_matrix_result<f32, 8, 8> {
-  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9c361d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl
deleted file mode 100644
index 1504bb5..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
-fn subgroupMatrixLoad_9e19b3() -> subgroup_matrix_result<f32, 8, 8>{
-  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9e19b3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.msl
deleted file mode 100644
index 7c44a04..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_9e19b3(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_9e19b3(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.spvasm
deleted file mode 100644
index 9f8661f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.spvasm
+++ /dev/null
@@ -1,80 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 41
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_9e19b3 "subgroupMatrixLoad_9e19b3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %33 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
-%subgroupMatrixLoad_9e19b3 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_1
-         %27 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %15 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main = OpFunction %void None %33
-         %34 = OpLabel
-         %35 = OpFunctionCall %15 %subgroupMatrixLoad_9e19b3
-         %36 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %38 = OpAccessChain %_ptr_StorageBuffer_float_0 %36 %uint_0
-               OpCooperativeMatrixStoreKHR %38 %35 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.wgsl
deleted file mode 100644
index 043e627..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e19b3.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_9e19b3() -> subgroup_matrix_result<f32, 8, 8> {
-  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9e19b3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl
new file mode 100644
index 0000000..b26c0b2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_9e2d69() -> subgroup_matrix_left<i32, 8, 8>{
+  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9e2d69(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8bf049.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.spvasm
new file mode 100644
index 0000000..b564ddf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_9e2d69 "subgroupMatrixLoad_9e2d69"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_9e2d69 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_9e2d69
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_int %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.wgsl
new file mode 100644
index 0000000..f7da1b6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_9e2d69() -> subgroup_matrix_left<i32, 8, 8> {
+  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9e2d69(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl
new file mode 100644
index 0000000..1720a2b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl
@@ -0,0 +1,56 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<workgroup, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_a13603() -> subgroup_matrix_left<f16, 8, 8>{
+  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_a13603(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.msl
new file mode 100644
index 0000000..9c99c2c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.msl
@@ -0,0 +1,55 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_a13603(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0h;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_a13603(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.spvasm
new file mode 100644
index 0000000..ea17943
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_a13603 "subgroupMatrixLoad_a13603"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_half_uint_1024_0 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024_0 = OpTypePointer Workgroup %_arr_half_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_a13603 = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %14 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %30
+%tint_local_index = OpFunctionParameter %uint
+         %31 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %37 = OpPhi %uint %tint_local_index %32 %38 %34
+               OpLoopMerge %36 %34 None
+               OpBranch %33
+         %33 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %37 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %36
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %37
+               OpStore %53 %half_0x0p_0 NonPrivatePointer
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpIAdd %uint %37 %uint_1
+               OpBranch %35
+         %36 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %42 = OpFunctionCall %14 %subgroupMatrixLoad_a13603
+         %43 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_half %43 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %42 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.wgsl
new file mode 100644
index 0000000..b155d8a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixLoad_a13603() -> subgroup_matrix_left<f16, 8, 8> {
+  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_a13603(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl
deleted file mode 100644
index 1c252b1..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
-fn subgroupMatrixLoad_ac8eb2() -> subgroup_matrix_left<i32, 8, 8>{
-  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ac8eb2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.spvasm
deleted file mode 100644
index 14afab3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,79 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_ac8eb2 "subgroupMatrixLoad_ac8eb2"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
-%subgroupMatrixLoad_ac8eb2 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_int %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_ac8eb2
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_int_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.wgsl
deleted file mode 100644
index af20316..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ac8eb2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_ac8eb2() -> subgroup_matrix_left<i32, 8, 8> {
-  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ac8eb2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl
new file mode 100644
index 0000000..ae8e100
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_b15f59() -> subgroup_matrix_left<f16, 8, 8>{
+  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b15f59(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.msl
new file mode 100644
index 0000000..978fe4b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_b15f59(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_b15f59(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.spvasm
new file mode 100644
index 0000000..9dc5bbf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.spvasm
@@ -0,0 +1,80 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_b15f59 "subgroupMatrixLoad_b15f59"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024_0 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_b15f59 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_b15f59
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_half_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.wgsl
new file mode 100644
index 0000000..0d415b0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_b15f59() -> subgroup_matrix_left<f16, 8, 8> {
+  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b15f59(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl
deleted file mode 100644
index 8731939..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<workgroup, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
-fn subgroupMatrixLoad_b16d34() -> subgroup_matrix_left<f32, 8, 8>{
-  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b16d34(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.msl
deleted file mode 100644
index 4458c21..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.msl
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_b16d34(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0f;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_b16d34(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm
deleted file mode 100644
index 3e05765..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm
+++ /dev/null
@@ -1,105 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_b16d34 "subgroupMatrixLoad_b16d34"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-       %bool = OpTypeBool
-    %float_0 = OpConstant %float 0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_b16d34 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
-         %24 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %24
-         %27 = OpLoad %15 %res None
-               OpReturnValue %27
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %37
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %38
-               OpStore %53 %float_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %43 = OpFunctionCall %15 %subgroupMatrixLoad_b16d34
-         %44 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_float %44 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %43 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.wgsl
deleted file mode 100644
index 3bb35a3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b16d34.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixLoad_b16d34() -> subgroup_matrix_left<f32, 8, 8> {
-  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b16d34(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl
new file mode 100644
index 0000000..23231e7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_b354d2() -> subgroup_matrix_result<i32, 8, 8>{
+  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b354d2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.spvasm
new file mode 100644
index 0000000..1c2bb73
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.spvasm
@@ -0,0 +1,105 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_b354d2 "subgroupMatrixLoad_b354d2"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_int_uint_1024_0 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024_0 = OpTypePointer Workgroup %_arr_int_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_b354d2 = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %14 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %30
+%tint_local_index = OpFunctionParameter %uint
+         %31 = OpLabel
+               OpBranch %32
+         %32 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+         %37 = OpPhi %uint %tint_local_index %32 %38 %34
+               OpLoopMerge %36 %34 None
+               OpBranch %33
+         %33 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %37 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %36
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %37
+               OpStore %53 %int_0 NonPrivatePointer
+               OpBranch %34
+         %34 = OpLabel
+         %38 = OpIAdd %uint %37 %uint_1
+               OpBranch %35
+         %36 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %14 %subgroupMatrixLoad_b354d2
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_int %42 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.wgsl
new file mode 100644
index 0000000..3003dea
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixLoad_b354d2() -> subgroup_matrix_result<i32, 8, 8> {
+  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b354d2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl
deleted file mode 100644
index c696331..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
-fn subgroupMatrixLoad_b5c3c7() -> subgroup_matrix_result<i32, 8, 8>{
-  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b5c3c7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.spvasm
deleted file mode 100644
index cfcea8a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,80 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 41
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_b5c3c7 "subgroupMatrixLoad_b5c3c7"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %33 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
-%subgroupMatrixLoad_b5c3c7 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_int %21 %uint_1
-         %27 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %15 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main = OpFunction %void None %33
-         %34 = OpLabel
-         %35 = OpFunctionCall %15 %subgroupMatrixLoad_b5c3c7
-         %36 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %38 = OpAccessChain %_ptr_StorageBuffer_int_0 %36 %uint_0
-               OpCooperativeMatrixStoreKHR %38 %35 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.wgsl
deleted file mode 100644
index 727724c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b5c3c7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_b5c3c7() -> subgroup_matrix_result<i32, 8, 8> {
-  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b5c3c7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl
deleted file mode 100644
index c426a33..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
-fn subgroupMatrixLoad_b79c0e() -> subgroup_matrix_right<f32, 8, 8>{
-  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b79c0e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.msl
deleted file mode 100644
index 3a79571..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_b79c0e(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_b79c0e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.spvasm
deleted file mode 100644
index 9bb8fe3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,77 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 39
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_b79c0e "subgroupMatrixLoad_b79c0e"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%subgroupMatrixLoad_b79c0e = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %24 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %24 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_b79c0e
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_float %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.wgsl
deleted file mode 100644
index dc16693..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b79c0e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_b79c0e() -> subgroup_matrix_right<f32, 8, 8> {
-  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b79c0e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl
new file mode 100644
index 0000000..de21739
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_c700ca() -> subgroup_matrix_right<u32, 8, 8>{
+  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_c700ca(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.spvasm
new file mode 100644
index 0000000..02c9f70
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_c700ca "subgroupMatrixLoad_c700ca"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+               OpDecorate %7 NonWritable
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024_0 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_c700ca = OpFunction %12 None %16
+         %17 = OpLabel
+        %res = OpVariable %_ptr_Function_12 Function
+         %18 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+         %23 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %23
+         %26 = OpLoad %12 %res None
+               OpReturnValue %26
+               OpFunctionEnd
+%compute_main = OpFunction %void None %29
+         %30 = OpLabel
+         %31 = OpFunctionCall %12 %subgroupMatrixLoad_c700ca
+         %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024_0 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_uint_0 %32 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %31 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.wgsl
new file mode 100644
index 0000000..3bcda38
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_c700ca() -> subgroup_matrix_right<u32, 8, 8> {
+  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_c700ca(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl
deleted file mode 100644
index 60dcbc1..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<workgroup, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
-fn subgroupMatrixLoad_c857d1() -> subgroup_matrix_result<f32, 8, 8>{
-  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_c857d1(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.msl
deleted file mode 100644
index 2f89a95..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.msl
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_c857d1(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0f;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_c857d1(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm
deleted file mode 100644
index c17955f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,105 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_c857d1 "subgroupMatrixLoad_c857d1"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-       %bool = OpTypeBool
-    %float_0 = OpConstant %float 0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_c857d1 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
-         %24 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %24
-         %27 = OpLoad %15 %res None
-               OpReturnValue %27
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %37
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %38
-               OpStore %53 %float_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %15 %subgroupMatrixLoad_c857d1
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_float %43 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.wgsl
deleted file mode 100644
index b99d74d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c857d1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixLoad_c857d1() -> subgroup_matrix_result<f32, 8, 8> {
-  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_c857d1(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl
new file mode 100644
index 0000000..b7f7688
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_ca4345() -> subgroup_matrix_result<i32, 8, 8>{
+  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ca4345(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.spvasm
new file mode 100644
index 0000000..6add717
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.spvasm
@@ -0,0 +1,78 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 40
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_ca4345 "subgroupMatrixLoad_ca4345"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024_0 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_ca4345 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+         %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %25
+         %28 = OpLoad %13 %res None
+               OpReturnValue %28
+               OpFunctionEnd
+%compute_main = OpFunction %void None %31
+         %32 = OpLabel
+         %33 = OpFunctionCall %13 %subgroupMatrixLoad_ca4345
+         %34 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024_0 %1 %uint_0
+         %36 = OpAccessChain %_ptr_StorageBuffer_int_0 %34 %uint_0
+               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.wgsl
new file mode 100644
index 0000000..bdec445
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_ca4345() -> subgroup_matrix_result<i32, 8, 8> {
+  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ca4345(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl
new file mode 100644
index 0000000..5d4efbc
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_cc5556() -> subgroup_matrix_left<i32, 8, 8>{
+  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_cc5556(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.spvasm
new file mode 100644
index 0000000..52149a0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_cc5556 "subgroupMatrixLoad_cc5556"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024_0 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_cc5556 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_cc5556
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_int_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.wgsl
new file mode 100644
index 0000000..eeb6c2a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_cc5556() -> subgroup_matrix_left<i32, 8, 8> {
+  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_cc5556(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl
new file mode 100644
index 0000000..b53ecdf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<workgroup, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_cce4cd() -> subgroup_matrix_right<f32, 8, 8>{
+  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_cce4cd(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.msl
new file mode 100644
index 0000000..2f93f5b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.msl
@@ -0,0 +1,55 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_cce4cd(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0f;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_cce4cd(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.spvasm
new file mode 100644
index 0000000..7fdcc6d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.spvasm
@@ -0,0 +1,105 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_cce4cd "subgroupMatrixLoad_cce4cd"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_float_uint_1024_0 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024_0 = OpTypePointer Workgroup %_arr_float_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+    %float_0 = OpConstant %float 0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_cce4cd = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
+         %22 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %22
+         %25 = OpLoad %14 %res None
+               OpReturnValue %25
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %29
+%tint_local_index = OpFunctionParameter %uint
+         %30 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+         %36 = OpPhi %uint %tint_local_index %31 %37 %33
+               OpLoopMerge %35 %33 None
+               OpBranch %32
+         %32 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %36 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %35
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_float %arg_0 %36
+               OpStore %53 %float_0 NonPrivatePointer
+               OpBranch %33
+         %33 = OpLabel
+         %37 = OpIAdd %uint %36 %uint_1
+               OpBranch %34
+         %35 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %14 %subgroupMatrixLoad_cce4cd
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_float %42 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.wgsl
new file mode 100644
index 0000000..2a58d80
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixLoad_cce4cd() -> subgroup_matrix_right<f32, 8, 8> {
+  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_cce4cd(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl
new file mode 100644
index 0000000..d79dbcf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_d2b502() -> subgroup_matrix_result<f16, 8, 8>{
+  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d2b502(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.msl
new file mode 100644
index 0000000..288f7ce
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_d2b502(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_d2b502(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.spvasm
new file mode 100644
index 0000000..2ccf56f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.spvasm
@@ -0,0 +1,81 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 40
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_d2b502 "subgroupMatrixLoad_d2b502"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024_0 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_d2b502 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+         %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %25
+         %28 = OpLoad %13 %res None
+               OpReturnValue %28
+               OpFunctionEnd
+%compute_main = OpFunction %void None %31
+         %32 = OpLabel
+         %33 = OpFunctionCall %13 %subgroupMatrixLoad_d2b502
+         %34 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024_0 %1 %uint_0
+         %36 = OpAccessChain %_ptr_StorageBuffer_half_0 %34 %uint_0
+               OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.wgsl
new file mode 100644
index 0000000..de32f43
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_d2b502() -> subgroup_matrix_result<f16, 8, 8> {
+  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d2b502(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl
new file mode 100644
index 0000000..1e4c46a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_d2c77c() -> subgroup_matrix_right<i32, 8, 8>{
+  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d2c77c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixLoad/4c307c.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.spvasm
new file mode 100644
index 0000000..59897cc
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.spvasm
@@ -0,0 +1,105 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 60
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_d2c77c "subgroupMatrixLoad_d2c77c"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_int_uint_1024_0 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024_0 = OpTypePointer Workgroup %_arr_int_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+         %18 = OpTypeFunction %14
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+         %56 = OpTypeFunction %void
+%subgroupMatrixLoad_d2c77c = OpFunction %14 None %18
+         %19 = OpLabel
+        %res = OpVariable %_ptr_Function_14 Function
+         %20 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
+         %22 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %22
+         %25 = OpLoad %14 %res None
+               OpReturnValue %25
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %29
+%tint_local_index = OpFunctionParameter %uint
+         %30 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+         %36 = OpPhi %uint %tint_local_index %31 %37 %33
+               OpLoopMerge %35 %33 None
+               OpBranch %32
+         %32 = OpLabel
+         %49 = OpUGreaterThanEqual %bool %36 %uint_1024
+               OpSelectionMerge %51 None
+               OpBranchConditional %49 %52 %51
+         %52 = OpLabel
+               OpBranch %35
+         %51 = OpLabel
+         %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %36
+               OpStore %53 %int_0 NonPrivatePointer
+               OpBranch %33
+         %33 = OpLabel
+         %37 = OpIAdd %uint %36 %uint_1
+               OpBranch %34
+         %35 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %14 %subgroupMatrixLoad_d2c77c
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %45 = OpAccessChain %_ptr_StorageBuffer_int %42 %uint_0
+               OpCooperativeMatrixStoreKHR %45 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %56
+         %57 = OpLabel
+         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %59 = OpFunctionCall %void %compute_main_inner %58
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.wgsl
new file mode 100644
index 0000000..a78d39c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixLoad_d2c77c() -> subgroup_matrix_right<i32, 8, 8> {
+  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d2c77c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl
new file mode 100644
index 0000000..a568264
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_d6e273() -> subgroup_matrix_result<u32, 8, 8>{
+  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d6e273(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.spvasm
new file mode 100644
index 0000000..f5fc58f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.spvasm
@@ -0,0 +1,103 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 58
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_d6e273 "subgroupMatrixLoad_d6e273"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_uint_uint_1024_0 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024_0 = OpTypePointer Workgroup %_arr_uint_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+         %54 = OpTypeFunction %void
+%subgroupMatrixLoad_d6e273 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
+         %22 = OpCooperativeMatrixLoadKHR %13 %19 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %22
+         %25 = OpLoad %13 %res None
+               OpReturnValue %25
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %29
+%tint_local_index = OpFunctionParameter %uint
+         %30 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+         %36 = OpPhi %uint %tint_local_index %31 %37 %33
+               OpLoopMerge %35 %33 None
+               OpBranch %32
+         %32 = OpLabel
+         %48 = OpUGreaterThanEqual %bool %36 %uint_1024
+               OpSelectionMerge %50 None
+               OpBranchConditional %48 %51 %50
+         %51 = OpLabel
+               OpBranch %35
+         %50 = OpLabel
+         %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %36
+               OpStore %52 %uint_0 NonPrivatePointer
+               OpBranch %33
+         %33 = OpLabel
+         %37 = OpIAdd %uint %36 %uint_1
+               OpBranch %34
+         %35 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %40 = OpFunctionCall %13 %subgroupMatrixLoad_d6e273
+         %41 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %44 = OpAccessChain %_ptr_StorageBuffer_uint %41 %uint_0
+               OpCooperativeMatrixStoreKHR %44 %40 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %54
+         %55 = OpLabel
+         %56 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %57 = OpFunctionCall %void %compute_main_inner %56
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.wgsl
new file mode 100644
index 0000000..fe653f2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixLoad_d6e273() -> subgroup_matrix_result<u32, 8, 8> {
+  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d6e273(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl
deleted file mode 100644
index fa92cf6..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
-fn subgroupMatrixLoad_e41808() -> subgroup_matrix_left<f32, 8, 8>{
-  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e41808(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.msl
deleted file mode 100644
index 3ed3f74..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.msl
+++ /dev/null
@@ -1,35 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_e41808(tint_module_vars_struct tint_module_vars) {
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_e41808(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.spvasm
deleted file mode 100644
index b158c64..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.spvasm
+++ /dev/null
@@ -1,79 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 40
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_e41808 "subgroupMatrixLoad_e41808"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %32 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
-%subgroupMatrixLoad_e41808 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %23 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_1
-         %26 = OpCooperativeMatrixLoadKHR %15 %23 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %26
-         %29 = OpLoad %15 %res None
-               OpReturnValue %29
-               OpFunctionEnd
-%compute_main = OpFunction %void None %32
-         %33 = OpLabel
-         %34 = OpFunctionCall %15 %subgroupMatrixLoad_e41808
-         %35 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %37 = OpAccessChain %_ptr_StorageBuffer_float_0 %35 %uint_0
-               OpCooperativeMatrixStoreKHR %37 %34 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.wgsl
deleted file mode 100644
index 5970806..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e41808.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_e41808() -> subgroup_matrix_left<f32, 8, 8> {
-  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e41808(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl
new file mode 100644
index 0000000..4593e1f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_e995ba() -> subgroup_matrix_left<f32, 8, 8>{
+  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e995ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.msl
new file mode 100644
index 0000000..81a6fd3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_e995ba(tint_module_vars_struct tint_module_vars) {
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_e995ba(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.spvasm
new file mode 100644
index 0000000..93a443a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_e995ba "subgroupMatrixLoad_e995ba"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_e995ba = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_e995ba
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %34 = OpAccessChain %_ptr_StorageBuffer_float %33 %uint_0
+               OpCooperativeMatrixStoreKHR %34 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.wgsl
new file mode 100644
index 0000000..7f8af58
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e995ba() -> subgroup_matrix_left<f32, 8, 8> {
+  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e995ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl
deleted file mode 100644
index d8e35d5..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<workgroup, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
-fn subgroupMatrixLoad_ea84a8() -> subgroup_matrix_right<i32, 8, 8>{
-  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ea84a8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm
deleted file mode 100644
index c435d1e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,105 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_ea84a8 "subgroupMatrixLoad_ea84a8"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %30 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-       %bool = OpTypeBool
-      %int_0 = OpConstant %int 0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_ea84a8 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
-         %23 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %23
-         %26 = OpLoad %15 %res None
-               OpReturnValue %26
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %30
-%tint_local_index = OpFunctionParameter %uint
-         %31 = OpLabel
-               OpBranch %32
-         %32 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-         %37 = OpPhi %uint %tint_local_index %32 %38 %34
-               OpLoopMerge %36 %34 None
-               OpBranch %33
-         %33 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %37 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %36
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_int %arg_0 %37
-               OpStore %53 %int_0 NonPrivatePointer
-               OpBranch %34
-         %34 = OpLabel
-         %38 = OpIAdd %uint %37 %uint_1
-               OpBranch %35
-         %36 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %15 %subgroupMatrixLoad_ea84a8
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_int %43 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.wgsl
deleted file mode 100644
index 2fabf91..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ea84a8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixLoad_ea84a8() -> subgroup_matrix_right<i32, 8, 8> {
-  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ea84a8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl
new file mode 100644
index 0000000..2b88b9a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_f406f6() -> subgroup_matrix_right<u32, 8, 8>{
+  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f406f6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.spvasm
new file mode 100644
index 0000000..e960894
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.spvasm
@@ -0,0 +1,103 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 58
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_f406f6 "subgroupMatrixLoad_f406f6"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_uint_uint_1024_0 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024_0 = OpTypePointer Workgroup %_arr_uint_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %28 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+         %54 = OpTypeFunction %void
+%subgroupMatrixLoad_f406f6 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
+         %21 = OpCooperativeMatrixLoadKHR %13 %19 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %21
+         %24 = OpLoad %13 %res None
+               OpReturnValue %24
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %28
+%tint_local_index = OpFunctionParameter %uint
+         %29 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+         %35 = OpPhi %uint %tint_local_index %30 %36 %32
+               OpLoopMerge %34 %32 None
+               OpBranch %31
+         %31 = OpLabel
+         %48 = OpUGreaterThanEqual %bool %35 %uint_1024
+               OpSelectionMerge %50 None
+               OpBranchConditional %48 %51 %50
+         %51 = OpLabel
+               OpBranch %34
+         %50 = OpLabel
+         %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %35
+               OpStore %52 %uint_0 NonPrivatePointer
+               OpBranch %32
+         %32 = OpLabel
+         %36 = OpIAdd %uint %35 %uint_1
+               OpBranch %33
+         %34 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %40 = OpFunctionCall %13 %subgroupMatrixLoad_f406f6
+         %41 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %44 = OpAccessChain %_ptr_StorageBuffer_uint %41 %uint_0
+               OpCooperativeMatrixStoreKHR %44 %40 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %54
+         %55 = OpLabel
+         %56 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %57 = OpFunctionCall %void %compute_main_inner %56
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.wgsl
new file mode 100644
index 0000000..dfd26ca
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixLoad_f406f6() -> subgroup_matrix_right<u32, 8, 8> {
+  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f406f6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl
deleted file mode 100644
index 2e32a37..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<workgroup, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
-fn subgroupMatrixLoad_f695fe() -> subgroup_matrix_left<u32, 8, 8>{
-  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f695fe(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm
deleted file mode 100644
index a0d4826..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm
+++ /dev/null
@@ -1,103 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 58
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_f695fe "subgroupMatrixLoad_f695fe"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %18 = OpTypeFunction %14
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %30 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %bool = OpTypeBool
-         %54 = OpTypeFunction %void
-%subgroupMatrixLoad_f695fe = OpFunction %14 None %18
-         %19 = OpLabel
-        %res = OpVariable %_ptr_Function_14 Function
-         %20 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
-         %23 = OpCooperativeMatrixLoadKHR %14 %20 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %23
-         %26 = OpLoad %14 %res None
-               OpReturnValue %26
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %30
-%tint_local_index = OpFunctionParameter %uint
-         %31 = OpLabel
-               OpBranch %32
-         %32 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-         %37 = OpPhi %uint %tint_local_index %32 %38 %34
-               OpLoopMerge %36 %34 None
-               OpBranch %33
-         %33 = OpLabel
-         %48 = OpUGreaterThanEqual %bool %37 %uint_64
-               OpSelectionMerge %50 None
-               OpBranchConditional %48 %51 %50
-         %51 = OpLabel
-               OpBranch %36
-         %50 = OpLabel
-         %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %37
-               OpStore %52 %uint_0 NonPrivatePointer
-               OpBranch %34
-         %34 = OpLabel
-         %38 = OpIAdd %uint %37 %uint_1
-               OpBranch %35
-         %36 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %14 %subgroupMatrixLoad_f695fe
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %45 = OpAccessChain %_ptr_StorageBuffer_uint %43 %uint_0
-               OpCooperativeMatrixStoreKHR %45 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %54
-         %55 = OpLabel
-         %56 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %57 = OpFunctionCall %void %compute_main_inner %56
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.wgsl
deleted file mode 100644
index 41b0ec6..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f695fe.wgsl.expected.wgsl
+++ /dev/null
@@ -1,15 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixLoad_f695fe() -> subgroup_matrix_left<u32, 8, 8> {
-  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f695fe(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl
new file mode 100644
index 0000000..76b4108
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_f792f5() -> subgroup_matrix_right<f16, 8, 8>{
+  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f792f5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.msl
new file mode 100644
index 0000000..a40192b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_f792f5(tint_module_vars_struct tint_module_vars) {
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_f792f5(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.spvasm
new file mode 100644
index 0000000..95ea769
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.spvasm
@@ -0,0 +1,80 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_f792f5 "subgroupMatrixLoad_f792f5"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024_0 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_f792f5 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+         %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %24
+         %27 = OpLoad %13 %res None
+               OpReturnValue %27
+               OpFunctionEnd
+%compute_main = OpFunction %void None %30
+         %31 = OpLabel
+         %32 = OpFunctionCall %13 %subgroupMatrixLoad_f792f5
+         %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024_0 %1 %uint_0
+         %35 = OpAccessChain %_ptr_StorageBuffer_half_0 %33 %uint_0
+               OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.wgsl
new file mode 100644
index 0000000..7241170
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_f792f5() -> subgroup_matrix_right<f16, 8, 8> {
+  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f792f5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl
deleted file mode 100644
index d599296..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<workgroup, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
-fn subgroupMatrixLoad_fd7bd9() -> subgroup_matrix_result<f16, 8, 8>{
-  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&arg_0, 1u, true, 1u);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_fd7bd9(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.msl
deleted file mode 100644
index 5a1764c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.msl
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_fd7bd9(tint_module_vars_struct tint_module_vars) {
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0h;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_fd7bd9(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm
deleted file mode 100644
index b232265..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm
+++ /dev/null
@@ -1,108 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 60
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_fd7bd9 "subgroupMatrixLoad_fd7bd9"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-     %uint_1 = OpConstant %uint 1
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %31 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-       %bool = OpTypeBool
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %56 = OpTypeFunction %void
-%subgroupMatrixLoad_fd7bd9 = OpFunction %15 None %19
-         %20 = OpLabel
-        %res = OpVariable %_ptr_Function_15 Function
-         %21 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
-         %24 = OpCooperativeMatrixLoadKHR %15 %21 %uint_1 %uint_1 NonPrivatePointer
-               OpStore %res %24
-         %27 = OpLoad %15 %res None
-               OpReturnValue %27
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %49 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %51 None
-               OpBranchConditional %49 %52 %51
-         %52 = OpLabel
-               OpBranch %37
-         %51 = OpLabel
-         %53 = OpAccessChain %_ptr_Workgroup_half %arg_0 %38
-               OpStore %53 %half_0x0p_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %42 = OpFunctionCall %15 %subgroupMatrixLoad_fd7bd9
-         %43 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %46 = OpAccessChain %_ptr_StorageBuffer_half %43 %uint_0
-               OpCooperativeMatrixStoreKHR %46 %42 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %56
-         %57 = OpLabel
-         %58 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %59 = OpFunctionCall %void %compute_main_inner %58
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.wgsl
deleted file mode 100644
index 211b171..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fd7bd9.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixLoad_fd7bd9() -> subgroup_matrix_result<f16, 8, 8> {
-  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(arg_0), 1u, true, 1u);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_fd7bd9(), false, 64);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl
new file mode 100644
index 0000000..4b74b77
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_fde5b5() -> subgroup_matrix_left<u32, 8, 8>{
+  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&arg_0, 1u, true, 1u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_fde5b5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.spvasm
new file mode 100644
index 0000000..5cb70e7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.spvasm
@@ -0,0 +1,103 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 58
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_fde5b5 "subgroupMatrixLoad_fde5b5"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_uint_uint_1024_0 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024_0 = OpTypePointer Workgroup %_arr_uint_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %29 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+         %54 = OpTypeFunction %void
+%subgroupMatrixLoad_fde5b5 = OpFunction %13 None %17
+         %18 = OpLabel
+        %res = OpVariable %_ptr_Function_13 Function
+         %19 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
+         %22 = OpCooperativeMatrixLoadKHR %13 %19 %uint_1 %uint_1 NonPrivatePointer
+               OpStore %res %22
+         %25 = OpLoad %13 %res None
+               OpReturnValue %25
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %29
+%tint_local_index = OpFunctionParameter %uint
+         %30 = OpLabel
+               OpBranch %31
+         %31 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+         %36 = OpPhi %uint %tint_local_index %31 %37 %33
+               OpLoopMerge %35 %33 None
+               OpBranch %32
+         %32 = OpLabel
+         %48 = OpUGreaterThanEqual %bool %36 %uint_1024
+               OpSelectionMerge %50 None
+               OpBranchConditional %48 %51 %50
+         %51 = OpLabel
+               OpBranch %35
+         %50 = OpLabel
+         %52 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %36
+               OpStore %52 %uint_0 NonPrivatePointer
+               OpBranch %33
+         %33 = OpLabel
+         %37 = OpIAdd %uint %36 %uint_1
+               OpBranch %34
+         %35 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %41 = OpFunctionCall %13 %subgroupMatrixLoad_fde5b5
+         %42 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %44 = OpAccessChain %_ptr_StorageBuffer_uint %42 %uint_0
+               OpCooperativeMatrixStoreKHR %44 %41 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %54
+         %55 = OpLabel
+         %56 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %57 = OpFunctionCall %void %compute_main_inner %56
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.wgsl
new file mode 100644
index 0000000..64706b4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixLoad_fde5b5() -> subgroup_matrix_left<u32, 8, 8> {
+  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(arg_0), 1u, true, 1u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_fde5b5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.msl
index 224c568..c609b6f 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
 
 fn subgroupMatrixMultiply_5677fc() -> subgroup_matrix_result<f32, 8, 8> {
   var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixMultiply<f32>(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>());
@@ -38,7 +38,7 @@
   $B1: {
     %2:subgroup_matrix_left<f16, 8, 8> = construct
     %3:subgroup_matrix_right<f16, 8, 8> = construct
-    %4:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var
+    %4:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var undef
     %5:subgroup_matrix_result<f32, 8, 8> = load %4
     %6:void = msl.simdgroup_multiply %5, %2, %3
     %7:subgroup_matrix_result<f32, 8, 8> = load %4
@@ -47,7 +47,7 @@
     ret %9
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %12:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %12
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.msl
index 6e92206..d009f23 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
 
 fn subgroupMatrixMultiply_8744bd() -> subgroup_matrix_result<f16, 8, 8> {
   var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixMultiply<f16>(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>());
@@ -38,7 +38,7 @@
   $B1: {
     %2:subgroup_matrix_left<f32, 8, 8> = construct
     %3:subgroup_matrix_right<f32, 8, 8> = construct
-    %4:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var
+    %4:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var undef
     %5:subgroup_matrix_result<f16, 8, 8> = load %4
     %6:void = msl.simdgroup_multiply %5, %2, %3
     %7:subgroup_matrix_result<f16, 8, 8> = load %4
@@ -47,7 +47,7 @@
     ret %9
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %12:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %12
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl
index fece4d7..8f63642 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
 
 fn subgroupMatrixMultiplyAccumulate_071472() -> subgroup_matrix_result<f32, 8, 8> {
   var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>(), subgroup_matrix_result<f32, 8, 8>());
@@ -39,7 +39,7 @@
     %2:subgroup_matrix_left<f16, 8, 8> = construct
     %3:subgroup_matrix_right<f16, 8, 8> = construct
     %4:subgroup_matrix_result<f32, 8, 8> = construct
-    %5:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var
+    %5:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var undef
     %6:subgroup_matrix_result<f32, 8, 8> = load %5
     %7:void = msl.simdgroup_multiply_accumulate %6, %2, %3, %4
     %8:subgroup_matrix_result<f32, 8, 8> = load %5
@@ -48,7 +48,7 @@
     ret %10
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %13:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %13
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl
index 5f83ee0..ed40fea 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
 
 fn subgroupMatrixMultiplyAccumulate_c4062a() -> subgroup_matrix_result<f16, 8, 8> {
   var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>(), subgroup_matrix_result<f16, 8, 8>());
@@ -39,7 +39,7 @@
     %2:subgroup_matrix_left<f32, 8, 8> = construct
     %3:subgroup_matrix_right<f32, 8, 8> = construct
     %4:subgroup_matrix_result<f16, 8, 8> = construct
-    %5:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var
+    %5:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var undef
     %6:subgroup_matrix_result<f16, 8, 8> = load %5
     %7:void = msl.simdgroup_multiply_accumulate %6, %2, %3, %4
     %8:subgroup_matrix_result<f16, 8, 8> = load %5
@@ -48,7 +48,7 @@
     ret %10
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %13:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %13
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl
new file mode 100644
index 0000000..6d56615
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f32, 1024>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_0268e9() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..11ccbcc
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_0268e9() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..754948b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_0268e9() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.msl
new file mode 100644
index 0000000..a7c35b8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.msl
@@ -0,0 +1,51 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_0268e9(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0f;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_0268e9(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.spvasm
new file mode 100644
index 0000000..a911b15
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_0268e9 "subgroupMatrixStore_0268e9"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024 = OpTypePointer Workgroup %_arr_float_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+    %float_0 = OpConstant %float 0
+         %13 = OpConstantComposite %14 %float_0
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_0268e9 = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %25
+%tint_local_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+         %32 = OpPhi %uint %tint_local_index %27 %33 %29
+               OpLoopMerge %31 %29 None
+               OpBranch %28
+         %28 = OpLabel
+         %38 = OpUGreaterThanEqual %bool %32 %uint_1024
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %41 %40
+         %41 = OpLabel
+               OpBranch %31
+         %40 = OpLabel
+         %42 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32
+               OpStore %42 %float_0 NonPrivatePointer
+               OpBranch %29
+         %29 = OpLabel
+         %33 = OpIAdd %uint %32 %uint_1
+               OpBranch %30
+         %31 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %37 = OpFunctionCall %void %subgroupMatrixStore_0268e9
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %44 = OpLabel
+         %45 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %46 = OpFunctionCall %void %compute_main_inner %45
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.wgsl
new file mode 100644
index 0000000..b494036
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_0268e9() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl
new file mode 100644
index 0000000..fa16ece
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl
@@ -0,0 +1,53 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f16, 1024>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_0413f0() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8b68b1e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_0413f0() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..f04120b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_0413f0() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.msl
new file mode 100644
index 0000000..4971aee
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.msl
@@ -0,0 +1,51 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_0413f0(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0h;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_0413f0(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.spvasm
new file mode 100644
index 0000000..4dc0e0e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_0413f0 "subgroupMatrixStore_0413f0"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024 = OpTypePointer Workgroup %_arr_half_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %13 = OpConstantComposite %14 %half_0x0p_0
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+         %24 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_0413f0 = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %24
+%tint_local_index = OpFunctionParameter %uint
+         %25 = OpLabel
+               OpBranch %26
+         %26 = OpLabel
+               OpBranch %29
+         %29 = OpLabel
+         %31 = OpPhi %uint %tint_local_index %26 %32 %28
+               OpLoopMerge %30 %28 None
+               OpBranch %27
+         %27 = OpLabel
+         %37 = OpUGreaterThanEqual %bool %31 %uint_1024
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %40 %39
+         %40 = OpLabel
+               OpBranch %30
+         %39 = OpLabel
+         %41 = OpAccessChain %_ptr_Workgroup_half %arg_0 %31
+               OpStore %41 %half_0x0p_0 NonPrivatePointer
+               OpBranch %28
+         %28 = OpLabel
+         %32 = OpIAdd %uint %31 %uint_1
+               OpBranch %29
+         %30 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %36 = OpFunctionCall %void %subgroupMatrixStore_0413f0
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %43 = OpLabel
+         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %45 = OpFunctionCall %void %compute_main_inner %44
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.wgsl
new file mode 100644
index 0000000..545274e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.wgsl
@@ -0,0 +1,13 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_0413f0() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl
deleted file mode 100644
index 04ec1a5..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f16, 64>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_0522d1() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 85c8a2a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_0522d1() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 3538b5a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_0522d1() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.msl
deleted file mode 100644
index 2249b06..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_0522d1(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_0522d1(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.spvasm
deleted file mode 100644
index 3a28fd0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,60 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 28
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_0522d1 "subgroupMatrixStore_0522d1"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_0522d1 = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %1 %uint_0 %uint_0
-         %21 = OpAccessChain %_ptr_StorageBuffer_half %13 %uint_1
-               OpCooperativeMatrixStoreKHR %21 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %subgroupMatrixStore_0522d1
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.wgsl
deleted file mode 100644
index 42c1f4b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_0522d1() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl
deleted file mode 100644
index 590ef20..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f16, 64>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_127fb7() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 289d392..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_127fb7() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 216312c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_127fb7() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.msl
deleted file mode 100644
index 01a0c50..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.msl
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_127fb7(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0h;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_127fb7(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm
deleted file mode 100644
index 99604dc..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,85 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_127fb7 "subgroupMatrixStore_127fb7"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %13 = OpConstantComposite %14 %half_0x0p_0
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-     %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_127fb7 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %25
-%tint_local_index = OpFunctionParameter %uint
-         %26 = OpLabel
-               OpBranch %27
-         %27 = OpLabel
-               OpBranch %30
-         %30 = OpLabel
-         %32 = OpPhi %uint %tint_local_index %27 %33 %29
-               OpLoopMerge %31 %29 None
-               OpBranch %28
-         %28 = OpLabel
-         %37 = OpUGreaterThanEqual %bool %32 %uint_64
-               OpSelectionMerge %39 None
-               OpBranchConditional %37 %40 %39
-         %40 = OpLabel
-               OpBranch %31
-         %39 = OpLabel
-         %41 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32
-               OpStore %41 %half_0x0p_0 NonPrivatePointer
-               OpBranch %29
-         %29 = OpLabel
-         %33 = OpIAdd %uint %32 %uint_1
-               OpBranch %30
-         %31 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %36 = OpFunctionCall %void %subgroupMatrixStore_127fb7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %43 = OpLabel
-         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %45 = OpFunctionCall %void %compute_main_inner %44
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.wgsl
deleted file mode 100644
index f6d7772..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,13 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_127fb7() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl
new file mode 100644
index 0000000..ba854e3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl
@@ -0,0 +1,56 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f16, 1024>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_1383a5() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8d8f26d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
@@ -0,0 +1,34 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_1383a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ac562d3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
@@ -0,0 +1,34 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_1383a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.msl
new file mode 100644
index 0000000..2f64c63
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.msl
@@ -0,0 +1,31 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_1383a5(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_1383a5(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.spvasm
new file mode 100644
index 0000000..9387f12
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.spvasm
@@ -0,0 +1,60 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_1383a5 "subgroupMatrixStore_1383a5"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%subgroupMatrixStore_1383a5 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_half %13 %uint_1
+               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %subgroupMatrixStore_1383a5
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.wgsl
new file mode 100644
index 0000000..fb47b52
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.wgsl
@@ -0,0 +1,17 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_1383a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl
new file mode 100644
index 0000000..9c274e2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<i32, 1024>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_1433f9() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..afab3ec
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_1433f9() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..5853c93
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_1433f9() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.spvasm
new file mode 100644
index 0000000..3f7a881
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_1433f9 "subgroupMatrixStore_1433f9"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024 = OpTypePointer Workgroup %_arr_int_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+      %int_0 = OpConstant %int 0
+         %13 = OpConstantComposite %14 %int_0
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+     %uint_1 = OpConstant %uint 1
+         %25 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_1433f9 = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %25
+%tint_local_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+         %32 = OpPhi %uint %tint_local_index %27 %33 %29
+               OpLoopMerge %31 %29 None
+               OpBranch %28
+         %28 = OpLabel
+         %38 = OpUGreaterThanEqual %bool %32 %uint_1024
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %41 %40
+         %41 = OpLabel
+               OpBranch %31
+         %40 = OpLabel
+         %42 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32
+               OpStore %42 %int_0 NonPrivatePointer
+               OpBranch %29
+         %29 = OpLabel
+         %33 = OpIAdd %uint %32 %uint_1
+               OpBranch %30
+         %31 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %37 = OpFunctionCall %void %subgroupMatrixStore_1433f9
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %44 = OpLabel
+         %45 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %46 = OpFunctionCall %void %compute_main_inner %45
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.wgsl
new file mode 100644
index 0000000..b959153
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_1433f9() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl
deleted file mode 100644
index 653320c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f16, 64>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_1466ba() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 7880419..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_1466ba() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.fxc.hlsl
deleted file mode 100644
index eaf905d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_1466ba() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.msl
deleted file mode 100644
index 5843312d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_1466ba(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_1466ba(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.spvasm
deleted file mode 100644
index 7f6654f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.spvasm
+++ /dev/null
@@ -1,61 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 29
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_1466ba "subgroupMatrixStore_1466ba"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_1466ba = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %1 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_half %13 %uint_1
-               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %subgroupMatrixStore_1466ba
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.wgsl
deleted file mode 100644
index a2a1df6..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_1466ba() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl
deleted file mode 100644
index 9ac5783..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<i32, 64>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_184580() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 9ba10f2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_184580() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.fxc.hlsl
deleted file mode 100644
index edc06b3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_184580() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.spvasm
deleted file mode 100644
index 0cb7e58..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.spvasm
+++ /dev/null
@@ -1,57 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 28
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_184580 "subgroupMatrixStore_184580"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%subgroupMatrixStore_184580 = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %1 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_int %13 %uint_1
-               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %subgroupMatrixStore_184580
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.wgsl
deleted file mode 100644
index 94e0c46..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_184580() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl
deleted file mode 100644
index 353bca8..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f32, 64>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_197435() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.dxc.hlsl
deleted file mode 100644
index a99db96..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_197435() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.fxc.hlsl
deleted file mode 100644
index c83410c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_197435() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.msl
deleted file mode 100644
index ad93a58..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_197435(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_197435(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.spvasm
deleted file mode 100644
index 2789f77..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.spvasm
+++ /dev/null
@@ -1,57 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 28
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_197435 "subgroupMatrixStore_197435"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_197435 = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %1 %uint_0 %uint_0
-         %21 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_1
-               OpCooperativeMatrixStoreKHR %21 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %subgroupMatrixStore_197435
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.wgsl
deleted file mode 100644
index de7ee41..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_197435() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl
new file mode 100644
index 0000000..9fb9552
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl
@@ -0,0 +1,56 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f16, 1024>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_22077b() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ca27dba
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,34 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_22077b() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..b8c6c44
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,34 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_22077b() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.msl
new file mode 100644
index 0000000..6580df5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.msl
@@ -0,0 +1,31 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_22077b(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_22077b(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.spvasm
new file mode 100644
index 0000000..832c84e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.spvasm
@@ -0,0 +1,61 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_22077b "subgroupMatrixStore_22077b"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_22077b = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_half %13 %uint_1
+               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %subgroupMatrixStore_22077b
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.wgsl
new file mode 100644
index 0000000..111d0f1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.wgsl
@@ -0,0 +1,17 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_22077b() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl
deleted file mode 100644
index 0997392..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<u32, 64>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_2de0b1() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 89f2e3a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_2de0b1() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 7d74fa3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_2de0b1() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm
deleted file mode 100644
index 0ffc0b2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,81 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_2de0b1 "subgroupMatrixStore_2de0b1"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-     %uint_0 = OpConstant %uint 0
-         %12 = OpConstantComposite %13 %uint_0
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-         %23 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_2de0b1 = OpFunction %void None %10
-         %11 = OpLabel
-         %18 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %18 %12 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %23
-%tint_local_index = OpFunctionParameter %uint
-         %24 = OpLabel
-               OpBranch %25
-         %25 = OpLabel
-               OpBranch %28
-         %28 = OpLabel
-         %30 = OpPhi %uint %tint_local_index %25 %31 %27
-               OpLoopMerge %29 %27 None
-               OpBranch %26
-         %26 = OpLabel
-         %36 = OpUGreaterThanEqual %bool %30 %uint_64
-               OpSelectionMerge %38 None
-               OpBranchConditional %36 %39 %38
-         %39 = OpLabel
-               OpBranch %29
-         %38 = OpLabel
-         %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30
-               OpStore %40 %uint_0 NonPrivatePointer
-               OpBranch %27
-         %27 = OpLabel
-         %31 = OpIAdd %uint %30 %uint_1
-               OpBranch %28
-         %29 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %35 = OpFunctionCall %void %subgroupMatrixStore_2de0b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %42 = OpLabel
-         %43 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %44 = OpFunctionCall %void %compute_main_inner %43
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.wgsl
deleted file mode 100644
index 214fb2f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2de0b1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_2de0b1() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl
deleted file mode 100644
index b08156f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f32, 64>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_3fcc0f() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 79dd6d7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_3fcc0f() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.fxc.hlsl
deleted file mode 100644
index cb41871..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_3fcc0f() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.msl
deleted file mode 100644
index a0cafc2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_3fcc0f(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_3fcc0f(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.spvasm
deleted file mode 100644
index b9b9aea..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.spvasm
+++ /dev/null
@@ -1,57 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 28
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_3fcc0f "subgroupMatrixStore_3fcc0f"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%subgroupMatrixStore_3fcc0f = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %1 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_1
-               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %subgroupMatrixStore_3fcc0f
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.wgsl
deleted file mode 100644
index 8b09b60..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_3fcc0f() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl
new file mode 100644
index 0000000..5b40cd2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl
@@ -0,0 +1,53 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f16, 1024>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_45de0c() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..3cd598e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_45de0c() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..be3441f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_45de0c() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.msl
new file mode 100644
index 0000000..1f83eed
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.msl
@@ -0,0 +1,51 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_45de0c(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0h;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_45de0c(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.spvasm
new file mode 100644
index 0000000..9707ae3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 47
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_45de0c "subgroupMatrixStore_45de0c"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024 = OpTypePointer Workgroup %_arr_half_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %13 = OpConstantComposite %14 %half_0x0p_0
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+     %uint_1 = OpConstant %uint 1
+         %25 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_45de0c = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %25
+%tint_local_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+         %32 = OpPhi %uint %tint_local_index %27 %33 %29
+               OpLoopMerge %31 %29 None
+               OpBranch %28
+         %28 = OpLabel
+         %38 = OpUGreaterThanEqual %bool %32 %uint_1024
+               OpSelectionMerge %40 None
+               OpBranchConditional %38 %41 %40
+         %41 = OpLabel
+               OpBranch %31
+         %40 = OpLabel
+         %42 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32
+               OpStore %42 %half_0x0p_0 NonPrivatePointer
+               OpBranch %29
+         %29 = OpLabel
+         %33 = OpIAdd %uint %32 %uint_1
+               OpBranch %30
+         %31 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %37 = OpFunctionCall %void %subgroupMatrixStore_45de0c
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %44 = OpLabel
+         %45 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %46 = OpFunctionCall %void %compute_main_inner %45
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.wgsl
new file mode 100644
index 0000000..2af65ad
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.wgsl
@@ -0,0 +1,13 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_45de0c() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl
new file mode 100644
index 0000000..0706a84
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<i32, 1024>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_47cd26() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..fb31aae
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_47cd26() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..635531c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_47cd26() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.spvasm
new file mode 100644
index 0000000..ed34dbd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.spvasm
@@ -0,0 +1,57 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_47cd26 "subgroupMatrixStore_47cd26"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_47cd26 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_int %13 %uint_1
+               OpCooperativeMatrixStoreKHR %21 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %subgroupMatrixStore_47cd26
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.wgsl
new file mode 100644
index 0000000..2d5b642
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_47cd26() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl
new file mode 100644
index 0000000..1a967ae
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<u32, 1024>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_4980a5() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c39eb85
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_4980a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..b1a394a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_4980a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.spvasm
new file mode 100644
index 0000000..b574b57
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.spvasm
@@ -0,0 +1,56 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 27
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_4980a5 "subgroupMatrixStore_4980a5"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_4980a5 = OpFunction %void None %10
+         %11 = OpLabel
+         %12 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 %uint_0
+         %20 = OpAccessChain %_ptr_StorageBuffer_uint %12 %uint_1
+               OpCooperativeMatrixStoreKHR %20 %15 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %25 = OpLabel
+         %26 = OpFunctionCall %void %subgroupMatrixStore_4980a5
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.wgsl
new file mode 100644
index 0000000..baa512a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_4980a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl
deleted file mode 100644
index cb21179..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f32, 64>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_49b25b() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.dxc.hlsl
deleted file mode 100644
index f784194..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_49b25b() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 5e37092..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_49b25b() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.msl
deleted file mode 100644
index 15833ea..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.msl
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_49b25b(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0f;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_49b25b(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm
deleted file mode 100644
index f4cf5b2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.spvasm
+++ /dev/null
@@ -1,82 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_49b25b "subgroupMatrixStore_49b25b"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-    %float_0 = OpConstant %float 0
-         %13 = OpConstantComposite %14 %float_0
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-         %24 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_49b25b = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %24
-%tint_local_index = OpFunctionParameter %uint
-         %25 = OpLabel
-               OpBranch %26
-         %26 = OpLabel
-               OpBranch %29
-         %29 = OpLabel
-         %31 = OpPhi %uint %tint_local_index %26 %32 %28
-               OpLoopMerge %30 %28 None
-               OpBranch %27
-         %27 = OpLabel
-         %37 = OpUGreaterThanEqual %bool %31 %uint_64
-               OpSelectionMerge %39 None
-               OpBranchConditional %37 %40 %39
-         %40 = OpLabel
-               OpBranch %30
-         %39 = OpLabel
-         %41 = OpAccessChain %_ptr_Workgroup_float %arg_0 %31
-               OpStore %41 %float_0 NonPrivatePointer
-               OpBranch %28
-         %28 = OpLabel
-         %32 = OpIAdd %uint %31 %uint_1
-               OpBranch %29
-         %30 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %36 = OpFunctionCall %void %subgroupMatrixStore_49b25b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %43 = OpLabel
-         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %45 = OpFunctionCall %void %compute_main_inner %44
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.wgsl
deleted file mode 100644
index 7cdf8f0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/49b25b.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_49b25b() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl
deleted file mode 100644
index 67f0883..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<i32, 64>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_5671e2() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 6d53a4b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_5671e2() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 010fa00..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_5671e2() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm
deleted file mode 100644
index ce9cc4e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,82 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_5671e2 "subgroupMatrixStore_5671e2"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-      %int_0 = OpConstant %int 0
-         %13 = OpConstantComposite %14 %int_0
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-         %24 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_5671e2 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %24
-%tint_local_index = OpFunctionParameter %uint
-         %25 = OpLabel
-               OpBranch %26
-         %26 = OpLabel
-               OpBranch %29
-         %29 = OpLabel
-         %31 = OpPhi %uint %tint_local_index %26 %32 %28
-               OpLoopMerge %30 %28 None
-               OpBranch %27
-         %27 = OpLabel
-         %37 = OpUGreaterThanEqual %bool %31 %uint_64
-               OpSelectionMerge %39 None
-               OpBranchConditional %37 %40 %39
-         %40 = OpLabel
-               OpBranch %30
-         %39 = OpLabel
-         %41 = OpAccessChain %_ptr_Workgroup_int %arg_0 %31
-               OpStore %41 %int_0 NonPrivatePointer
-               OpBranch %28
-         %28 = OpLabel
-         %32 = OpIAdd %uint %31 %uint_1
-               OpBranch %29
-         %30 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %36 = OpFunctionCall %void %subgroupMatrixStore_5671e2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %43 = OpLabel
-         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %45 = OpFunctionCall %void %compute_main_inner %44
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.wgsl
deleted file mode 100644
index eb8846b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_5671e2() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl
deleted file mode 100644
index 5199f54..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<u32, 64>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_57de92() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 4a8d796f..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_57de92() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 5ed14e0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_57de92() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.spvasm
deleted file mode 100644
index f74918e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.spvasm
+++ /dev/null
@@ -1,55 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_57de92 "subgroupMatrixStore_57de92"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%subgroupMatrixStore_57de92 = OpFunction %void None %10
-         %11 = OpLabel
-         %12 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %1 %uint_0 %uint_0
-         %20 = OpAccessChain %_ptr_StorageBuffer_uint %12 %uint_1
-               OpCooperativeMatrixStoreKHR %20 %15 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %subgroupMatrixStore_57de92
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.wgsl
deleted file mode 100644
index dabd5d4..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/57de92.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_57de92() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl
deleted file mode 100644
index d6c8d79..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<u32, 64>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_5915fe() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 84a6bae..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_5915fe() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 1b2bdf2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_5915fe() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm
deleted file mode 100644
index b9c6ebc..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.spvasm
+++ /dev/null
@@ -1,81 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_5915fe "subgroupMatrixStore_5915fe"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %12 = OpConstantComposite %13 %uint_0
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-     %uint_1 = OpConstant %uint 1
-         %23 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_5915fe = OpFunction %void None %10
-         %11 = OpLabel
-         %17 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %17 %12 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %23
-%tint_local_index = OpFunctionParameter %uint
-         %24 = OpLabel
-               OpBranch %25
-         %25 = OpLabel
-               OpBranch %28
-         %28 = OpLabel
-         %30 = OpPhi %uint %tint_local_index %25 %31 %27
-               OpLoopMerge %29 %27 None
-               OpBranch %26
-         %26 = OpLabel
-         %36 = OpUGreaterThanEqual %bool %30 %uint_64
-               OpSelectionMerge %38 None
-               OpBranchConditional %36 %39 %38
-         %39 = OpLabel
-               OpBranch %29
-         %38 = OpLabel
-         %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30
-               OpStore %40 %uint_0 NonPrivatePointer
-               OpBranch %27
-         %27 = OpLabel
-         %31 = OpIAdd %uint %30 %uint_1
-               OpBranch %28
-         %29 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %35 = OpFunctionCall %void %subgroupMatrixStore_5915fe
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %42 = OpLabel
-         %43 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %44 = OpFunctionCall %void %compute_main_inner %43
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.wgsl
deleted file mode 100644
index 4c41dfe..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_5915fe() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl
new file mode 100644
index 0000000..8f92933
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<u32, 1024>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_62c1b6() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..a686185
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_62c1b6() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..e143e20
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_62c1b6() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.spvasm
new file mode 100644
index 0000000..04d6de4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.spvasm
@@ -0,0 +1,81 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_62c1b6 "subgroupMatrixStore_62c1b6"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024 = OpTypePointer Workgroup %_arr_uint_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %12 = OpConstantComposite %13 %uint_0
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+     %uint_1 = OpConstant %uint 1
+         %23 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_62c1b6 = OpFunction %void None %10
+         %11 = OpLabel
+         %17 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %17 %12 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %23
+%tint_local_index = OpFunctionParameter %uint
+         %24 = OpLabel
+               OpBranch %25
+         %25 = OpLabel
+               OpBranch %28
+         %28 = OpLabel
+         %30 = OpPhi %uint %tint_local_index %25 %31 %27
+               OpLoopMerge %29 %27 None
+               OpBranch %26
+         %26 = OpLabel
+         %36 = OpUGreaterThanEqual %bool %30 %uint_1024
+               OpSelectionMerge %38 None
+               OpBranchConditional %36 %39 %38
+         %39 = OpLabel
+               OpBranch %29
+         %38 = OpLabel
+         %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30
+               OpStore %40 %uint_0 NonPrivatePointer
+               OpBranch %27
+         %27 = OpLabel
+         %31 = OpIAdd %uint %30 %uint_1
+               OpBranch %28
+         %29 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %35 = OpFunctionCall %void %subgroupMatrixStore_62c1b6
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %42 = OpLabel
+         %43 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %44 = OpFunctionCall %void %compute_main_inner %43
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.wgsl
new file mode 100644
index 0000000..df609d0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_62c1b6() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl
new file mode 100644
index 0000000..a3440db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<i32, 1024>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_6578da() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..0069ddd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_6578da() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c15d207
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_6578da() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/1466ba.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.spvasm
new file mode 100644
index 0000000..2db578d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_6578da "subgroupMatrixStore_6578da"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024 = OpTypePointer Workgroup %_arr_int_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+      %int_0 = OpConstant %int 0
+         %13 = OpConstantComposite %14 %int_0
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+     %uint_1 = OpConstant %uint 1
+         %25 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_6578da = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %25
+%tint_local_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+         %32 = OpPhi %uint %tint_local_index %27 %33 %29
+               OpLoopMerge %31 %29 None
+               OpBranch %28
+         %28 = OpLabel
+         %37 = OpUGreaterThanEqual %bool %32 %uint_1024
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %40 %39
+         %40 = OpLabel
+               OpBranch %31
+         %39 = OpLabel
+         %41 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32
+               OpStore %41 %int_0 NonPrivatePointer
+               OpBranch %29
+         %29 = OpLabel
+         %33 = OpIAdd %uint %32 %uint_1
+               OpBranch %30
+         %31 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %36 = OpFunctionCall %void %subgroupMatrixStore_6578da
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %43 = OpLabel
+         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %45 = OpFunctionCall %void %compute_main_inner %44
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.wgsl
new file mode 100644
index 0000000..8cc039d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_6578da() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl
new file mode 100644
index 0000000..530888a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<u32, 1024>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_716ef7() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..e02047d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_716ef7() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..4e57231
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_716ef7() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.spvasm
new file mode 100644
index 0000000..e783b19
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.spvasm
@@ -0,0 +1,81 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_716ef7 "subgroupMatrixStore_716ef7"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024 = OpTypePointer Workgroup %_arr_uint_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+     %uint_0 = OpConstant %uint 0
+         %12 = OpConstantComposite %13 %uint_0
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+         %23 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_716ef7 = OpFunction %void None %10
+         %11 = OpLabel
+         %18 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %18 %12 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %23
+%tint_local_index = OpFunctionParameter %uint
+         %24 = OpLabel
+               OpBranch %25
+         %25 = OpLabel
+               OpBranch %28
+         %28 = OpLabel
+         %30 = OpPhi %uint %tint_local_index %25 %31 %27
+               OpLoopMerge %29 %27 None
+               OpBranch %26
+         %26 = OpLabel
+         %36 = OpUGreaterThanEqual %bool %30 %uint_1024
+               OpSelectionMerge %38 None
+               OpBranchConditional %36 %39 %38
+         %39 = OpLabel
+               OpBranch %29
+         %38 = OpLabel
+         %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %30
+               OpStore %40 %uint_0 NonPrivatePointer
+               OpBranch %27
+         %27 = OpLabel
+         %31 = OpIAdd %uint %30 %uint_1
+               OpBranch %28
+         %29 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %35 = OpFunctionCall %void %subgroupMatrixStore_716ef7
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %42 = OpLabel
+         %43 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %44 = OpFunctionCall %void %compute_main_inner %43
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.wgsl
new file mode 100644
index 0000000..7247ba4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_716ef7() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl
new file mode 100644
index 0000000..1b1cd32
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<u32, 1024>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_72f3af() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7a27eb3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_72f3af() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..7e12a99
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_72f3af() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.spvasm
new file mode 100644
index 0000000..294a806
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.spvasm
@@ -0,0 +1,55 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 26
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_72f3af "subgroupMatrixStore_72f3af"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%subgroupMatrixStore_72f3af = OpFunction %void None %10
+         %11 = OpLabel
+         %12 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 %uint_0
+         %20 = OpAccessChain %_ptr_StorageBuffer_uint %12 %uint_1
+               OpCooperativeMatrixStoreKHR %20 %15 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %subgroupMatrixStore_72f3af
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.wgsl
new file mode 100644
index 0000000..5d721f2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_72f3af() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl
new file mode 100644
index 0000000..1472505
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl
@@ -0,0 +1,53 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f16, 1024>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_840822() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..31e9da9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_840822() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..cf52b43
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
@@ -0,0 +1,23 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_840822() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.msl
new file mode 100644
index 0000000..98f55ec
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.msl
@@ -0,0 +1,51 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_840822(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0h;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_840822(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.spvasm
new file mode 100644
index 0000000..22e3317
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_840822 "subgroupMatrixStore_840822"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024 = OpTypePointer Workgroup %_arr_half_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %13 = OpConstantComposite %14 %half_0x0p_0
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+     %uint_1 = OpConstant %uint 1
+         %25 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_840822 = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %25
+%tint_local_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+         %32 = OpPhi %uint %tint_local_index %27 %33 %29
+               OpLoopMerge %31 %29 None
+               OpBranch %28
+         %28 = OpLabel
+         %37 = OpUGreaterThanEqual %bool %32 %uint_1024
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %40 %39
+         %40 = OpLabel
+               OpBranch %31
+         %39 = OpLabel
+         %41 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32
+               OpStore %41 %half_0x0p_0 NonPrivatePointer
+               OpBranch %29
+         %29 = OpLabel
+         %33 = OpIAdd %uint %32 %uint_1
+               OpBranch %30
+         %31 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %36 = OpFunctionCall %void %subgroupMatrixStore_840822
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %43 = OpLabel
+         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %45 = OpFunctionCall %void %compute_main_inner %44
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.wgsl
new file mode 100644
index 0000000..7760d6c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.wgsl
@@ -0,0 +1,13 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_840822() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl
new file mode 100644
index 0000000..52a1982
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<u32, 1024>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_865820() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..0d63c09
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_865820() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..20c5225
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_865820() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.spvasm
new file mode 100644
index 0000000..86cdc50
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.spvasm
@@ -0,0 +1,81 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_865820 "subgroupMatrixStore_865820"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024 = OpTypePointer Workgroup %_arr_uint_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+     %uint_0 = OpConstant %uint 0
+         %12 = OpConstantComposite %13 %uint_0
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+     %uint_1 = OpConstant %uint 1
+         %24 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_865820 = OpFunction %void None %10
+         %11 = OpLabel
+         %18 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %18 %12 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %24
+%tint_local_index = OpFunctionParameter %uint
+         %25 = OpLabel
+               OpBranch %26
+         %26 = OpLabel
+               OpBranch %29
+         %29 = OpLabel
+         %31 = OpPhi %uint %tint_local_index %26 %32 %28
+               OpLoopMerge %30 %28 None
+               OpBranch %27
+         %27 = OpLabel
+         %36 = OpUGreaterThanEqual %bool %31 %uint_1024
+               OpSelectionMerge %38 None
+               OpBranchConditional %36 %39 %38
+         %39 = OpLabel
+               OpBranch %30
+         %38 = OpLabel
+         %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %31
+               OpStore %40 %uint_0 NonPrivatePointer
+               OpBranch %28
+         %28 = OpLabel
+         %32 = OpIAdd %uint %31 %uint_1
+               OpBranch %29
+         %30 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %35 = OpFunctionCall %void %subgroupMatrixStore_865820
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %42 = OpLabel
+         %43 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %44 = OpFunctionCall %void %compute_main_inner %43
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.wgsl
new file mode 100644
index 0000000..001daa9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_865820() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl
deleted file mode 100644
index c03361d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f32, 64>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_8a2280() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.dxc.hlsl
deleted file mode 100644
index de9a99c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_8a2280() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 33f5739..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_8a2280() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.msl
deleted file mode 100644
index 4fb5f47..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_8a2280(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_8a2280(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.spvasm
deleted file mode 100644
index 407f0fd..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.spvasm
+++ /dev/null
@@ -1,58 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 29
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_8a2280 "subgroupMatrixStore_8a2280"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_8a2280 = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %1 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_1
-               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %subgroupMatrixStore_8a2280
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.wgsl
deleted file mode 100644
index abdc2de..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a2280.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_8a2280() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl
deleted file mode 100644
index 9f60baf..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<i32, 64>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_9019ee() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 64e96d2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9019ee() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 388a4b4..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9019ee() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.spvasm
deleted file mode 100644
index 9062def..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.spvasm
+++ /dev/null
@@ -1,57 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 28
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_9019ee "subgroupMatrixStore_9019ee"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_9019ee = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %1 %uint_0 %uint_0
-         %21 = OpAccessChain %_ptr_StorageBuffer_int %13 %uint_1
-               OpCooperativeMatrixStoreKHR %21 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %subgroupMatrixStore_9019ee
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.wgsl
deleted file mode 100644
index 617d169..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9019ee.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9019ee() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl
new file mode 100644
index 0000000..f9b4e51
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<i32, 1024>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_9991c3() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7b430ed
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_9991c3() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..d6a33a5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_9991c3() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.spvasm
new file mode 100644
index 0000000..b0694b5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.spvasm
@@ -0,0 +1,57 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_9991c3 "subgroupMatrixStore_9991c3"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%subgroupMatrixStore_9991c3 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_int %13 %uint_1
+               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %subgroupMatrixStore_9991c3
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.wgsl
new file mode 100644
index 0000000..f5eb987
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_9991c3() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl
deleted file mode 100644
index 9b80b43..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<u32, 64>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_9a7d60() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 8f7f18d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_9a7d60() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.fxc.hlsl
deleted file mode 100644
index c3314fa..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_9a7d60() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm
deleted file mode 100644
index b9a5e31..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm
+++ /dev/null
@@ -1,81 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_9a7d60 "subgroupMatrixStore_9a7d60"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-     %uint_0 = OpConstant %uint 0
-         %12 = OpConstantComposite %13 %uint_0
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-     %uint_1 = OpConstant %uint 1
-         %24 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_9a7d60 = OpFunction %void None %10
-         %11 = OpLabel
-         %18 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %18 %12 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %24
-%tint_local_index = OpFunctionParameter %uint
-         %25 = OpLabel
-               OpBranch %26
-         %26 = OpLabel
-               OpBranch %29
-         %29 = OpLabel
-         %31 = OpPhi %uint %tint_local_index %26 %32 %28
-               OpLoopMerge %30 %28 None
-               OpBranch %27
-         %27 = OpLabel
-         %36 = OpUGreaterThanEqual %bool %31 %uint_64
-               OpSelectionMerge %38 None
-               OpBranchConditional %36 %39 %38
-         %39 = OpLabel
-               OpBranch %30
-         %38 = OpLabel
-         %40 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %31
-               OpStore %40 %uint_0 NonPrivatePointer
-               OpBranch %28
-         %28 = OpLabel
-         %32 = OpIAdd %uint %31 %uint_1
-               OpBranch %29
-         %30 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %35 = OpFunctionCall %void %subgroupMatrixStore_9a7d60
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %42 = OpLabel
-         %43 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %44 = OpFunctionCall %void %compute_main_inner %43
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.wgsl
deleted file mode 100644
index 08f3f15..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9a7d60.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_9a7d60() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl
deleted file mode 100644
index 2f1e10b..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<i32, 64>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_9fffe5() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.dxc.hlsl
deleted file mode 100644
index a9872f8..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9fffe5() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d17d436..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9fffe5() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.spvasm
deleted file mode 100644
index 74dbca1..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.spvasm
+++ /dev/null
@@ -1,58 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 29
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_9fffe5 "subgroupMatrixStore_9fffe5"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_9fffe5 = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %1 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_int %13 %uint_1
-               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %27 = OpLabel
-         %28 = OpFunctionCall %void %subgroupMatrixStore_9fffe5
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.wgsl
deleted file mode 100644
index ececc48..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9fffe5() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl
new file mode 100644
index 0000000..28dc6d1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f32, 1024>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_a3ed32() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..0daa2c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_a3ed32() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..2a7b70d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_a3ed32() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.msl
new file mode 100644
index 0000000..45f44ca
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.msl
@@ -0,0 +1,51 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_a3ed32(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0f;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_a3ed32(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.spvasm
new file mode 100644
index 0000000..cb0af60
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_a3ed32 "subgroupMatrixStore_a3ed32"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024 = OpTypePointer Workgroup %_arr_float_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+    %float_0 = OpConstant %float 0
+         %13 = OpConstantComposite %14 %float_0
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+     %uint_1 = OpConstant %uint 1
+         %25 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_a3ed32 = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %25
+%tint_local_index = OpFunctionParameter %uint
+         %26 = OpLabel
+               OpBranch %27
+         %27 = OpLabel
+               OpBranch %30
+         %30 = OpLabel
+         %32 = OpPhi %uint %tint_local_index %27 %33 %29
+               OpLoopMerge %31 %29 None
+               OpBranch %28
+         %28 = OpLabel
+         %37 = OpUGreaterThanEqual %bool %32 %uint_1024
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %40 %39
+         %40 = OpLabel
+               OpBranch %31
+         %39 = OpLabel
+         %41 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32
+               OpStore %41 %float_0 NonPrivatePointer
+               OpBranch %29
+         %29 = OpLabel
+         %33 = OpIAdd %uint %32 %uint_1
+               OpBranch %30
+         %31 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %36 = OpFunctionCall %void %subgroupMatrixStore_a3ed32
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %43 = OpLabel
+         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %45 = OpFunctionCall %void %compute_main_inner %44
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.wgsl
new file mode 100644
index 0000000..007f85a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_a3ed32() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl
new file mode 100644
index 0000000..7f41264
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f32, 1024>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_a50ea0() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..4904d8d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50ea0() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..3090797
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50ea0() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.msl
new file mode 100644
index 0000000..4810a60
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.msl
@@ -0,0 +1,31 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_a50ea0(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_a50ea0(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.spvasm
new file mode 100644
index 0000000..11f1e45
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.spvasm
@@ -0,0 +1,57 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_a50ea0 "subgroupMatrixStore_a50ea0"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%subgroupMatrixStore_a50ea0 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_1
+               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %subgroupMatrixStore_a50ea0
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.wgsl
new file mode 100644
index 0000000..1fd9fbe
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50ea0() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl
new file mode 100644
index 0000000..344ae19
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f32, 1024>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_acb4b7() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9932f83
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_acb4b7() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..dd31e24
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_acb4b7() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.msl
new file mode 100644
index 0000000..59e348b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.msl
@@ -0,0 +1,31 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_acb4b7(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_acb4b7(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.spvasm
new file mode 100644
index 0000000..fac19ae
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.spvasm
@@ -0,0 +1,58 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_acb4b7 "subgroupMatrixStore_acb4b7"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_acb4b7 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_1
+               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %subgroupMatrixStore_acb4b7
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.wgsl
new file mode 100644
index 0000000..97b8dc8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_acb4b7() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl
deleted file mode 100644
index 99d3069..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f32, 64>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_b9ff25() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 270d427..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_b9ff25() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 41a3fb5..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_b9ff25() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.msl
deleted file mode 100644
index 634c7ce..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.msl
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_b9ff25(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0f;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_b9ff25(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm
deleted file mode 100644
index 06bc4fb..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm
+++ /dev/null
@@ -1,82 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_b9ff25 "subgroupMatrixStore_b9ff25"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-    %float_0 = OpConstant %float 0
-         %13 = OpConstantComposite %14 %float_0
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-     %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_b9ff25 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %25
-%tint_local_index = OpFunctionParameter %uint
-         %26 = OpLabel
-               OpBranch %27
-         %27 = OpLabel
-               OpBranch %30
-         %30 = OpLabel
-         %32 = OpPhi %uint %tint_local_index %27 %33 %29
-               OpLoopMerge %31 %29 None
-               OpBranch %28
-         %28 = OpLabel
-         %37 = OpUGreaterThanEqual %bool %32 %uint_64
-               OpSelectionMerge %39 None
-               OpBranchConditional %37 %40 %39
-         %40 = OpLabel
-               OpBranch %31
-         %39 = OpLabel
-         %41 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32
-               OpStore %41 %float_0 NonPrivatePointer
-               OpBranch %29
-         %29 = OpLabel
-         %33 = OpIAdd %uint %32 %uint_1
-               OpBranch %30
-         %31 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %36 = OpFunctionCall %void %subgroupMatrixStore_b9ff25
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %43 = OpLabel
-         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %45 = OpFunctionCall %void %compute_main_inner %44
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.wgsl
deleted file mode 100644
index 68f10d1..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/b9ff25.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_b9ff25() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl
deleted file mode 100644
index 1b7dd99..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f16, 64>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_ba9442() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 27e0bd2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_ba9442() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.fxc.hlsl
deleted file mode 100644
index a800681..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,34 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_ba9442() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.msl
deleted file mode 100644
index 63fe06e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.msl
+++ /dev/null
@@ -1,31 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_ba9442(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_ba9442(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.spvasm
deleted file mode 100644
index df7c905..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.spvasm
+++ /dev/null
@@ -1,60 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 28
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_ba9442 "subgroupMatrixStore_ba9442"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%subgroupMatrixStore_ba9442 = OpFunction %void None %11
-         %12 = OpLabel
-         %13 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %1 %uint_0 %uint_0
-         %22 = OpAccessChain %_ptr_StorageBuffer_half %13 %uint_1
-               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %26 = OpLabel
-         %27 = OpFunctionCall %void %subgroupMatrixStore_ba9442
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.wgsl
deleted file mode 100644
index 4f1e02d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ba9442.wgsl.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_ba9442() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl
deleted file mode 100644
index 42b10c8..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<i32, 64>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_bfd0a4() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 5b1fcf7..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_bfd0a4() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 92288f2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_bfd0a4() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm
deleted file mode 100644
index d311081..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm
+++ /dev/null
@@ -1,83 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 47
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_bfd0a4 "subgroupMatrixStore_bfd0a4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-      %int_0 = OpConstant %int 0
-         %13 = OpConstantComposite %14 %int_0
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-     %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_bfd0a4 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %25
-%tint_local_index = OpFunctionParameter %uint
-         %26 = OpLabel
-               OpBranch %27
-         %27 = OpLabel
-               OpBranch %30
-         %30 = OpLabel
-         %32 = OpPhi %uint %tint_local_index %27 %33 %29
-               OpLoopMerge %31 %29 None
-               OpBranch %28
-         %28 = OpLabel
-         %38 = OpUGreaterThanEqual %bool %32 %uint_64
-               OpSelectionMerge %40 None
-               OpBranchConditional %38 %41 %40
-         %41 = OpLabel
-               OpBranch %31
-         %40 = OpLabel
-         %42 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32
-               OpStore %42 %int_0 NonPrivatePointer
-               OpBranch %29
-         %29 = OpLabel
-         %33 = OpIAdd %uint %32 %uint_1
-               OpBranch %30
-         %31 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %37 = OpFunctionCall %void %subgroupMatrixStore_bfd0a4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %44 = OpLabel
-         %45 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %46 = OpFunctionCall %void %compute_main_inner %45
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.wgsl
deleted file mode 100644
index 645be91..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfd0a4.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_bfd0a4() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl
new file mode 100644
index 0000000..f4cce47
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<i32, 1024>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c28145() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8932290
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_c28145() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..a0cbc3a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_c28145() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/9fffe5.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.spvasm
new file mode 100644
index 0000000..fd69f27
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.spvasm
@@ -0,0 +1,58 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 29
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_c28145 "subgroupMatrixStore_c28145"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_c28145 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 %uint_0
+         %22 = OpAccessChain %_ptr_StorageBuffer_int %13 %uint_1
+               OpCooperativeMatrixStoreKHR %22 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %27 = OpLabel
+         %28 = OpFunctionCall %void %subgroupMatrixStore_c28145
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.wgsl
new file mode 100644
index 0000000..7c99c83
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_c28145() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl
new file mode 100644
index 0000000..09a8d1a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f32, 1024>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c4a7ce() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..3906450
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_c4a7ce() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..1e3eebe
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_c4a7ce() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.glsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.msl
new file mode 100644
index 0000000..fb2f02b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.msl
@@ -0,0 +1,51 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_c4a7ce(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0f;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_c4a7ce(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.spvasm
new file mode 100644
index 0000000..fc919da
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_c4a7ce "subgroupMatrixStore_c4a7ce"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024 = OpTypePointer Workgroup %_arr_float_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+    %float_0 = OpConstant %float 0
+         %13 = OpConstantComposite %14 %float_0
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+         %24 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_c4a7ce = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %24
+%tint_local_index = OpFunctionParameter %uint
+         %25 = OpLabel
+               OpBranch %26
+         %26 = OpLabel
+               OpBranch %29
+         %29 = OpLabel
+         %31 = OpPhi %uint %tint_local_index %26 %32 %28
+               OpLoopMerge %30 %28 None
+               OpBranch %27
+         %27 = OpLabel
+         %37 = OpUGreaterThanEqual %bool %31 %uint_1024
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %40 %39
+         %40 = OpLabel
+               OpBranch %30
+         %39 = OpLabel
+         %41 = OpAccessChain %_ptr_Workgroup_float %arg_0 %31
+               OpStore %41 %float_0 NonPrivatePointer
+               OpBranch %28
+         %28 = OpLabel
+         %32 = OpIAdd %uint %31 %uint_1
+               OpBranch %29
+         %30 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %36 = OpFunctionCall %void %subgroupMatrixStore_c4a7ce
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %43 = OpLabel
+         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %45 = OpFunctionCall %void %compute_main_inner %44
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.wgsl
new file mode 100644
index 0000000..b7316a8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_c4a7ce() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl
deleted file mode 100644
index ff035b4..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f16, 64>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_d07581() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 685d232..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_d07581() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.fxc.hlsl
deleted file mode 100644
index b8dcd26..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_d07581() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.msl
deleted file mode 100644
index f558485..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.msl
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_d07581(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0h;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_d07581(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm
deleted file mode 100644
index ab9a9d0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.spvasm
+++ /dev/null
@@ -1,85 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_d07581 "subgroupMatrixStore_d07581"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %13 = OpConstantComposite %14 %half_0x0p_0
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-         %24 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_d07581 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %24
-%tint_local_index = OpFunctionParameter %uint
-         %25 = OpLabel
-               OpBranch %26
-         %26 = OpLabel
-               OpBranch %29
-         %29 = OpLabel
-         %31 = OpPhi %uint %tint_local_index %26 %32 %28
-               OpLoopMerge %30 %28 None
-               OpBranch %27
-         %27 = OpLabel
-         %37 = OpUGreaterThanEqual %bool %31 %uint_64
-               OpSelectionMerge %39 None
-               OpBranchConditional %37 %40 %39
-         %40 = OpLabel
-               OpBranch %30
-         %39 = OpLabel
-         %41 = OpAccessChain %_ptr_Workgroup_half %arg_0 %31
-               OpStore %41 %half_0x0p_0 NonPrivatePointer
-               OpBranch %28
-         %28 = OpLabel
-         %32 = OpIAdd %uint %31 %uint_1
-               OpBranch %29
-         %30 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %36 = OpFunctionCall %void %subgroupMatrixStore_d07581
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %43 = OpLabel
-         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %45 = OpFunctionCall %void %compute_main_inner %44
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.wgsl
deleted file mode 100644
index a758a63..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d07581.wgsl.expected.wgsl
+++ /dev/null
@@ -1,13 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_d07581() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl
deleted file mode 100644
index bfdd395..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<u32, 64>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_db6dd2() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 09e5100..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_db6dd2() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.fxc.hlsl
deleted file mode 100644
index f23345d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_db6dd2() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.spvasm
deleted file mode 100644
index ba312a3..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,55 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 26
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_db6dd2 "subgroupMatrixStore_db6dd2"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_db6dd2 = OpFunction %void None %10
-         %11 = OpLabel
-         %12 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %1 %uint_0 %uint_0
-         %19 = OpAccessChain %_ptr_StorageBuffer_uint %12 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %15 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %24 = OpLabel
-         %25 = OpFunctionCall %void %subgroupMatrixStore_db6dd2
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.wgsl
deleted file mode 100644
index f46c9035..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/db6dd2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_db6dd2() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl
deleted file mode 100644
index c2f42d8..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f32, 64>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_dc92cf() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.dxc.hlsl
deleted file mode 100644
index b1ca801..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_dc92cf() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d31e647..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_dc92cf() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.msl
deleted file mode 100644
index e8c2a9a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.msl
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_dc92cf(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0f;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_dc92cf(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm
deleted file mode 100644
index 9e28b92..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm
+++ /dev/null
@@ -1,83 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 47
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_dc92cf "subgroupMatrixStore_dc92cf"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-    %float_0 = OpConstant %float 0
-         %13 = OpConstantComposite %14 %float_0
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-     %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_dc92cf = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_float %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %25
-%tint_local_index = OpFunctionParameter %uint
-         %26 = OpLabel
-               OpBranch %27
-         %27 = OpLabel
-               OpBranch %30
-         %30 = OpLabel
-         %32 = OpPhi %uint %tint_local_index %27 %33 %29
-               OpLoopMerge %31 %29 None
-               OpBranch %28
-         %28 = OpLabel
-         %38 = OpUGreaterThanEqual %bool %32 %uint_64
-               OpSelectionMerge %40 None
-               OpBranchConditional %38 %41 %40
-         %41 = OpLabel
-               OpBranch %31
-         %40 = OpLabel
-         %42 = OpAccessChain %_ptr_Workgroup_float %arg_0 %32
-               OpStore %42 %float_0 NonPrivatePointer
-               OpBranch %29
-         %29 = OpLabel
-         %33 = OpIAdd %uint %32 %uint_1
-               OpBranch %30
-         %31 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %37 = OpFunctionCall %void %subgroupMatrixStore_dc92cf
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %44 = OpLabel
-         %45 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %46 = OpFunctionCall %void %compute_main_inner %45
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.wgsl
deleted file mode 100644
index a278989..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dc92cf.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_dc92cf() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl
deleted file mode 100644
index a123e4a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<u32, 64>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_dce0b7() {
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 14f150e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_dce0b7() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 9d41a64..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,33 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_dce0b7() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.spvasm
deleted file mode 100644
index 9f6534d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,56 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 27
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_dce0b7 "subgroupMatrixStore_dce0b7"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-     %uint_1 = OpConstant %uint 1
-%subgroupMatrixStore_dce0b7 = OpFunction %void None %10
-         %11 = OpLabel
-         %12 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %1 %uint_0 %uint_0
-         %20 = OpAccessChain %_ptr_StorageBuffer_uint %12 %uint_1
-               OpCooperativeMatrixStoreKHR %20 %15 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %25 = OpLabel
-         %26 = OpFunctionCall %void %subgroupMatrixStore_dce0b7
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.wgsl
deleted file mode 100644
index d0803cd..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/dce0b7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_dce0b7() {
-  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl
new file mode 100644
index 0000000..e1ad0c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f32, 1024>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_eac52e() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..607a423
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_eac52e() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..1d95449
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_eac52e() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.msl
new file mode 100644
index 0000000..f223d60
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.msl
@@ -0,0 +1,31 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_eac52e(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_float8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_eac52e(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.spvasm
new file mode 100644
index 0000000..13d1547
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.spvasm
@@ -0,0 +1,57 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_eac52e "subgroupMatrixStore_eac52e"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_eac52e = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_float %13 %uint_1
+               OpCooperativeMatrixStoreKHR %21 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %subgroupMatrixStore_eac52e
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.wgsl
new file mode 100644
index 0000000..37f740f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_eac52e() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl
deleted file mode 100644
index dc945d2..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f16, 64>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_ee1195() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.dxc.hlsl
deleted file mode 100644
index c42ff19..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_ee1195() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.fxc.hlsl
deleted file mode 100644
index fbda29e..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,23 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_ee1195() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.msl
deleted file mode 100644
index 075b47a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.msl
+++ /dev/null
@@ -1,51 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_ee1195(tint_module_vars_struct tint_module_vars) {
-  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.arg_0)[1u]), ulong(1u), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0h;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_ee1195(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm
deleted file mode 100644
index 8851203..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.spvasm
+++ /dev/null
@@ -1,86 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 47
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_ee1195 "subgroupMatrixStore_ee1195"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %13 = OpConstantComposite %14 %half_0x0p_0
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-     %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_ee1195 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_half %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %25
-%tint_local_index = OpFunctionParameter %uint
-         %26 = OpLabel
-               OpBranch %27
-         %27 = OpLabel
-               OpBranch %30
-         %30 = OpLabel
-         %32 = OpPhi %uint %tint_local_index %27 %33 %29
-               OpLoopMerge %31 %29 None
-               OpBranch %28
-         %28 = OpLabel
-         %38 = OpUGreaterThanEqual %bool %32 %uint_64
-               OpSelectionMerge %40 None
-               OpBranchConditional %38 %41 %40
-         %41 = OpLabel
-               OpBranch %31
-         %40 = OpLabel
-         %42 = OpAccessChain %_ptr_Workgroup_half %arg_0 %32
-               OpStore %42 %half_0x0p_0 NonPrivatePointer
-               OpBranch %29
-         %29 = OpLabel
-         %33 = OpIAdd %uint %32 %uint_1
-               OpBranch %30
-         %31 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %37 = OpFunctionCall %void %subgroupMatrixStore_ee1195
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %44 = OpLabel
-         %45 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %46 = OpFunctionCall %void %compute_main_inner %45
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.wgsl
deleted file mode 100644
index 7611c26..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/ee1195.wgsl.expected.wgsl
+++ /dev/null
@@ -1,13 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_ee1195() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl
deleted file mode 100644
index bd5397c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<i32, 64>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_f04d67() {
-  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 9a123ff..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_f04d67() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.fxc.hlsl
deleted file mode 100644
index b2a0619..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,22 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_f04d67() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm
deleted file mode 100644
index 32a014d..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.spvasm
+++ /dev/null
@@ -1,82 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_f04d67 "subgroupMatrixStore_f04d67"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-      %int_0 = OpConstant %int 0
-         %13 = OpConstantComposite %14 %int_0
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-     %uint_1 = OpConstant %uint 1
-         %25 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_f04d67 = OpFunction %void None %11
-         %12 = OpLabel
-         %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
-               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %25
-%tint_local_index = OpFunctionParameter %uint
-         %26 = OpLabel
-               OpBranch %27
-         %27 = OpLabel
-               OpBranch %30
-         %30 = OpLabel
-         %32 = OpPhi %uint %tint_local_index %27 %33 %29
-               OpLoopMerge %31 %29 None
-               OpBranch %28
-         %28 = OpLabel
-         %37 = OpUGreaterThanEqual %bool %32 %uint_64
-               OpSelectionMerge %39 None
-               OpBranchConditional %37 %40 %39
-         %40 = OpLabel
-               OpBranch %31
-         %39 = OpLabel
-         %41 = OpAccessChain %_ptr_Workgroup_int %arg_0 %32
-               OpStore %41 %int_0 NonPrivatePointer
-               OpBranch %29
-         %29 = OpLabel
-         %33 = OpIAdd %uint %32 %uint_1
-               OpBranch %30
-         %31 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %36 = OpFunctionCall %void %subgroupMatrixStore_f04d67
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %43 = OpLabel
-         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %45 = OpFunctionCall %void %compute_main_inner %44
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.wgsl
deleted file mode 100644
index 0900627d6..0000000
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f04d67.wgsl.expected.wgsl
+++ /dev/null
@@ -1,12 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_f04d67() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl
new file mode 100644
index 0000000..5db9803
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl
@@ -0,0 +1,54 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<u32, 1024>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_f71f4f() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..180a10b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f71f4f() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..2b3b630
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,33 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f71f4f() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.spvasm
new file mode 100644
index 0000000..26ace4f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.spvasm
@@ -0,0 +1,55 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 26
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_f71f4f "subgroupMatrixStore_f71f4f"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_f71f4f = OpFunction %void None %10
+         %11 = OpLabel
+         %12 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 %uint_0
+         %19 = OpAccessChain %_ptr_StorageBuffer_uint %12 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %15 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %24 = OpLabel
+         %25 = OpFunctionCall %void %subgroupMatrixStore_f71f4f
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.wgsl
new file mode 100644
index 0000000..f1aaa32
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f71f4f() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl
new file mode 100644
index 0000000..76c70b8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl
@@ -0,0 +1,56 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f16, 1024>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_fb7663() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..eaf4cc7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
@@ -0,0 +1,34 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_fb7663() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..d6dc37a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
@@ -0,0 +1,34 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_fb7663() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl:51:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.msl
new file mode 100644
index 0000000..090a5de
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.msl
@@ -0,0 +1,31 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_fb7663(tint_module_vars_struct tint_module_vars) {
+  simdgroup_store(simdgroup_half8x8(), (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_fb7663(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.spvasm
new file mode 100644
index 0000000..5c6e49f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.spvasm
@@ -0,0 +1,60 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 28
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_fb7663 "subgroupMatrixStore_fb7663"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+     %uint_1 = OpConstant %uint 1
+%subgroupMatrixStore_fb7663 = OpFunction %void None %11
+         %12 = OpLabel
+         %13 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 %uint_0
+         %21 = OpAccessChain %_ptr_StorageBuffer_half %13 %uint_1
+               OpCooperativeMatrixStoreKHR %21 %16 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %26 = OpLabel
+         %27 = OpFunctionCall %void %subgroupMatrixStore_fb7663
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.wgsl
new file mode 100644
index 0000000..9299e31
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.wgsl
@@ -0,0 +1,17 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_fb7663() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl
new file mode 100644
index 0000000..cfe4a4f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl
@@ -0,0 +1,51 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<i32, 1024>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_feca1e() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..97a18f0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_feca1e() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..7575cf6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_feca1e() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.glsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/literal/subgroupMatrixStore/5915fe.wgsl.expected.msl
rename to test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.spvasm
new file mode 100644
index 0000000..da5c5ba
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 46
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_feca1e "subgroupMatrixStore_feca1e"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024 = OpTypePointer Workgroup %_arr_int_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+      %int_0 = OpConstant %int 0
+         %13 = OpConstantComposite %14 %int_0
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+         %24 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_feca1e = OpFunction %void None %11
+         %12 = OpLabel
+         %19 = OpAccessChain %_ptr_Workgroup_int %arg_0 %uint_1
+               OpCooperativeMatrixStoreKHR %19 %13 %uint_1 %uint_1 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %24
+%tint_local_index = OpFunctionParameter %uint
+         %25 = OpLabel
+               OpBranch %26
+         %26 = OpLabel
+               OpBranch %29
+         %29 = OpLabel
+         %31 = OpPhi %uint %tint_local_index %26 %32 %28
+               OpLoopMerge %30 %28 None
+               OpBranch %27
+         %27 = OpLabel
+         %37 = OpUGreaterThanEqual %bool %31 %uint_1024
+               OpSelectionMerge %39 None
+               OpBranchConditional %37 %40 %39
+         %40 = OpLabel
+               OpBranch %30
+         %39 = OpLabel
+         %41 = OpAccessChain %_ptr_Workgroup_int %arg_0 %31
+               OpStore %41 %int_0 NonPrivatePointer
+               OpBranch %28
+         %28 = OpLabel
+         %32 = OpIAdd %uint %31 %uint_1
+               OpBranch %29
+         %30 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %36 = OpFunctionCall %void %subgroupMatrixStore_feca1e
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %43 = OpLabel
+         %44 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %45 = OpFunctionCall %void %compute_main_inner %44
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.wgsl
new file mode 100644
index 0000000..87c2bac
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.wgsl
@@ -0,0 +1,12 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_feca1e() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl
new file mode 100644
index 0000000..c34084b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_015e29() -> subgroup_matrix_right<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_015e29(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.msl
new file mode 100644
index 0000000..70d9cb2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_015e29(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_015e29(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.spvasm
new file mode 100644
index 0000000..42e235c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_015e29 "subgroupMatrixLoad_015e29"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_015e29 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_float %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_015e29
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_float %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.wgsl
new file mode 100644
index 0000000..a3ba537
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_015e29() -> subgroup_matrix_right<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_015e29(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl
deleted file mode 100644
index 37ba2a8..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
-fn subgroupMatrixLoad_01c615() -> subgroup_matrix_result<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_01c615(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.spvasm
deleted file mode 100644
index 165b87e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.spvasm
+++ /dev/null
@@ -1,86 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_01c615 "subgroupMatrixLoad_01c615"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%subgroupMatrixLoad_01c615 = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_uint %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %14 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %14 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %14 %subgroupMatrixLoad_01c615
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_uint %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.wgsl
deleted file mode 100644
index b880cef..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_01c615() -> subgroup_matrix_result<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_01c615(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl
new file mode 100644
index 0000000..303c4fa
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_06933f() -> subgroup_matrix_left<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_06933f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.msl
new file mode 100644
index 0000000..8e20b72
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_06933f(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_06933f(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.spvasm
new file mode 100644
index 0000000..d72d376
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_06933f "subgroupMatrixLoad_06933f"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_06933f = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_half %23 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_06933f
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_half %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.wgsl
new file mode 100644
index 0000000..b95ba2f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_06933f() -> subgroup_matrix_left<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_06933f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl
deleted file mode 100644
index e805831..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<workgroup, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
-fn subgroupMatrixLoad_0c84dd() -> subgroup_matrix_left<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0c84dd(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.msl
deleted file mode 100644
index e564c76..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.msl
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_0c84dd(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0h;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_0c84dd(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm
deleted file mode 100644
index 4c42c05..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.spvasm
+++ /dev/null
@@ -1,117 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_0c84dd "subgroupMatrixLoad_0c84dd"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-       %bool = OpTypeBool
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_0c84dd = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %uint %arg_3 None
-         %27 = OpAccessChain %_ptr_Workgroup_half %arg_0 %25
-         %29 = OpCooperativeMatrixLoadKHR %15 %27 %uint_1 %26 NonPrivatePointer
-               OpStore %res %29
-         %32 = OpLoad %15 %res None
-               OpReturnValue %32
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %36
-%tint_local_index = OpFunctionParameter %uint
-         %37 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %uint %tint_local_index %38 %44 %40
-               OpLoopMerge %42 %40 None
-               OpBranch %39
-         %39 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %43 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %42
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %43
-               OpStore %58 %half_0x0p_0 NonPrivatePointer
-               OpBranch %40
-         %40 = OpLabel
-         %44 = OpIAdd %uint %43 %uint_1
-               OpBranch %41
-         %42 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %48 = OpFunctionCall %15 %subgroupMatrixLoad_0c84dd
-         %49 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_half %49 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %48 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.wgsl
deleted file mode 100644
index ccfb688..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixLoad_0c84dd() -> subgroup_matrix_left<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0c84dd(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl
deleted file mode 100644
index 0aff53c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
-fn subgroupMatrixLoad_0d1b2e() -> subgroup_matrix_left<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0d1b2e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.msl
deleted file mode 100644
index a5946e2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_0d1b2e(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_0d1b2e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.spvasm
deleted file mode 100644
index c724e4e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,89 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_0d1b2e "subgroupMatrixLoad_0d1b2e"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%subgroupMatrixLoad_0d1b2e = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_half %25 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_0d1b2e
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_half %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.wgsl
deleted file mode 100644
index 0619f6e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_0d1b2e() -> subgroup_matrix_left<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0d1b2e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl
deleted file mode 100644
index 3c673cf..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
-fn subgroupMatrixLoad_0d6e8e() -> subgroup_matrix_left<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0d6e8e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.spvasm
deleted file mode 100644
index d3e580a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,87 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_0d6e8e "subgroupMatrixLoad_0d6e8e"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-               OpDecorate %7 NonWritable
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
-%subgroupMatrixLoad_0d6e8e = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %26 = OpLoad %uint %arg_1 None
-         %27 = OpLoad %uint %arg_3 None
-         %28 = OpAccessChain %_ptr_StorageBuffer_uint %24 %26
-         %30 = OpCooperativeMatrixLoadKHR %14 %28 %uint_1 %27 NonPrivatePointer
-               OpStore %res %30
-         %33 = OpLoad %14 %res None
-               OpReturnValue %33
-               OpFunctionEnd
-%compute_main = OpFunction %void None %36
-         %37 = OpLabel
-         %38 = OpFunctionCall %14 %subgroupMatrixLoad_0d6e8e
-         %39 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %41 = OpAccessChain %_ptr_StorageBuffer_uint_0 %39 %uint_0
-               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.wgsl
deleted file mode 100644
index 49c48da..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_0d6e8e() -> subgroup_matrix_left<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0d6e8e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl
deleted file mode 100644
index 97f84e7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
-fn subgroupMatrixLoad_0decf8() -> subgroup_matrix_right<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0decf8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.msl
deleted file mode 100644
index 6f94776..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_0decf8(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_0decf8(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.spvasm
deleted file mode 100644
index 87e0bc8..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,91 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_0decf8 "subgroupMatrixLoad_0decf8"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
-%subgroupMatrixLoad_0decf8 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_half %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_0decf8
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_half_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.wgsl
deleted file mode 100644
index d3a8c74..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0decf8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_0decf8() -> subgroup_matrix_right<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0decf8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl
new file mode 100644
index 0000000..0a392cc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_0f48aa() -> subgroup_matrix_result<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0f48aa(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.msl
new file mode 100644
index 0000000..b683125
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_0f48aa(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_0f48aa(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.spvasm
new file mode 100644
index 0000000..682af2a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.spvasm
@@ -0,0 +1,87 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_0f48aa "subgroupMatrixLoad_0f48aa"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024_0 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_0f48aa = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %uint %arg_3 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_float %23 %26
+         %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+               OpStore %res %30
+         %33 = OpLoad %13 %res None
+               OpReturnValue %33
+               OpFunctionEnd
+%compute_main = OpFunction %void None %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %13 %subgroupMatrixLoad_0f48aa
+         %39 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024_0 %1 %uint_0
+         %41 = OpAccessChain %_ptr_StorageBuffer_float_0 %39 %uint_0
+               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.wgsl
new file mode 100644
index 0000000..0cb607b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_0f48aa() -> subgroup_matrix_result<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0f48aa(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl
deleted file mode 100644
index fab3ec7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
-fn subgroupMatrixLoad_1042d8() -> subgroup_matrix_result<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_1042d8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.msl
deleted file mode 100644
index 4f2dacd..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_1042d8(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_1042d8(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.spvasm
deleted file mode 100644
index 692190f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,92 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_1042d8 "subgroupMatrixLoad_1042d8"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %38 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
-%subgroupMatrixLoad_1042d8 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %uint %arg_3 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_half %25 %28
-         %32 = OpCooperativeMatrixLoadKHR %15 %30 %uint_1 %29 NonPrivatePointer
-               OpStore %res %32
-         %35 = OpLoad %15 %res None
-               OpReturnValue %35
-               OpFunctionEnd
-%compute_main = OpFunction %void None %38
-         %39 = OpLabel
-         %40 = OpFunctionCall %15 %subgroupMatrixLoad_1042d8
-         %41 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %43 = OpAccessChain %_ptr_StorageBuffer_half_0 %41 %uint_0
-               OpCooperativeMatrixStoreKHR %43 %40 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.wgsl
deleted file mode 100644
index 8ff1756..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1042d8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_1042d8() -> subgroup_matrix_result<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_1042d8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl
new file mode 100644
index 0000000..65f9d9a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_119c99() -> subgroup_matrix_right<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_119c99(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.spvasm
new file mode 100644
index 0000000..abfbf3dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_119c99 "subgroupMatrixLoad_119c99"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_119c99 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_int %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_119c99
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_int %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.wgsl
new file mode 100644
index 0000000..74ee89b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_119c99() -> subgroup_matrix_right<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_119c99(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl
new file mode 100644
index 0000000..03054df
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_11bb4b() -> subgroup_matrix_result<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_11bb4b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.msl
new file mode 100644
index 0000000..31faedd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_11bb4b(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_11bb4b(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.spvasm
new file mode 100644
index 0000000..5529290
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.spvasm
@@ -0,0 +1,87 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_11bb4b "subgroupMatrixLoad_11bb4b"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %36 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_11bb4b = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %uint %arg_3 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_half %23 %26
+         %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+               OpStore %res %30
+         %33 = OpLoad %13 %res None
+               OpReturnValue %33
+               OpFunctionEnd
+%compute_main = OpFunction %void None %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %13 %subgroupMatrixLoad_11bb4b
+         %39 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_half %39 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %38 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.wgsl
new file mode 100644
index 0000000..55772d5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_11bb4b() -> subgroup_matrix_result<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_11bb4b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl
deleted file mode 100644
index 2bdfb9f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
-fn subgroupMatrixLoad_11c1db() -> subgroup_matrix_left<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_11c1db(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.msl
deleted file mode 100644
index c10a22c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_11c1db(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_11c1db(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.spvasm
deleted file mode 100644
index 99c89ec..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.spvasm
+++ /dev/null
@@ -1,91 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_11c1db "subgroupMatrixLoad_11c1db"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
-%subgroupMatrixLoad_11c1db = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_half %25 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_11c1db
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_half_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.wgsl
deleted file mode 100644
index 5f0e40d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11c1db.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_11c1db() -> subgroup_matrix_left<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_11c1db(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl
new file mode 100644
index 0000000..78c9e5e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<workgroup, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_12b63e() -> subgroup_matrix_right<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_12b63e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.msl
new file mode 100644
index 0000000..4b20dd0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.msl
@@ -0,0 +1,57 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_12b63e(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0h;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_12b63e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.spvasm
new file mode 100644
index 0000000..41f111c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.spvasm
@@ -0,0 +1,117 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_12b63e "subgroupMatrixLoad_12b63e"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_half_uint_1024_0 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024_0 = OpTypePointer Workgroup %_arr_half_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_12b63e = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %uint %arg_3 None
+         %25 = OpAccessChain %_ptr_Workgroup_half %arg_0 %23
+         %27 = OpCooperativeMatrixLoadKHR %14 %25 %uint_1 %24 NonPrivatePointer
+               OpStore %res %27
+         %30 = OpLoad %14 %res None
+               OpReturnValue %30
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %34
+%tint_local_index = OpFunctionParameter %uint
+         %35 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %41 = OpPhi %uint %tint_local_index %36 %42 %38
+               OpLoopMerge %40 %38 None
+               OpBranch %37
+         %37 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %41 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %40
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %41
+               OpStore %58 %half_0x0p_0 NonPrivatePointer
+               OpBranch %38
+         %38 = OpLabel
+         %42 = OpIAdd %uint %41 %uint_1
+               OpBranch %39
+         %40 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %14 %subgroupMatrixLoad_12b63e
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_half %47 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.wgsl
new file mode 100644
index 0000000..d12040e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixLoad_12b63e() -> subgroup_matrix_right<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_12b63e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl
deleted file mode 100644
index 4cf1654..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
-fn subgroupMatrixLoad_133af8() -> subgroup_matrix_left<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_133af8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.msl
deleted file mode 100644
index 0f19ee4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_133af8(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_133af8(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.spvasm
deleted file mode 100644
index e873e85..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,86 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_133af8 "subgroupMatrixLoad_133af8"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%subgroupMatrixLoad_133af8 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_float %25 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_133af8
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_float %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.wgsl
deleted file mode 100644
index 07a0dd7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/133af8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_133af8() -> subgroup_matrix_left<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_133af8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl
deleted file mode 100644
index e291011..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<workgroup, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
-fn subgroupMatrixLoad_139ad7() -> subgroup_matrix_right<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_139ad7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.msl
deleted file mode 100644
index ad1b871..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.msl
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_139ad7(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0h;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_139ad7(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm
deleted file mode 100644
index 476e685..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,117 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_139ad7 "subgroupMatrixLoad_139ad7"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %35 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-       %bool = OpTypeBool
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_139ad7 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %uint %arg_3 None
-         %26 = OpAccessChain %_ptr_Workgroup_half %arg_0 %24
-         %28 = OpCooperativeMatrixLoadKHR %15 %26 %uint_1 %25 NonPrivatePointer
-               OpStore %res %28
-         %31 = OpLoad %15 %res None
-               OpReturnValue %31
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %35
-%tint_local_index = OpFunctionParameter %uint
-         %36 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-               OpBranch %40
-         %40 = OpLabel
-         %42 = OpPhi %uint %tint_local_index %37 %43 %39
-               OpLoopMerge %41 %39 None
-               OpBranch %38
-         %38 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %42 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %41
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %42
-               OpStore %58 %half_0x0p_0 NonPrivatePointer
-               OpBranch %39
-         %39 = OpLabel
-         %43 = OpIAdd %uint %42 %uint_1
-               OpBranch %40
-         %41 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %15 %subgroupMatrixLoad_139ad7
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_half %48 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.wgsl
deleted file mode 100644
index 1706a96..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixLoad_139ad7() -> subgroup_matrix_right<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_139ad7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl
deleted file mode 100644
index fcce03e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
-fn subgroupMatrixLoad_159294() -> subgroup_matrix_result<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_159294(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.msl
deleted file mode 100644
index 7f47102..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_159294(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_159294(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.spvasm
deleted file mode 100644
index e3e2e89..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.spvasm
+++ /dev/null
@@ -1,90 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_159294 "subgroupMatrixLoad_159294"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %38 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%subgroupMatrixLoad_159294 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %uint %arg_3 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_half %25 %28
-         %32 = OpCooperativeMatrixLoadKHR %15 %30 %uint_1 %29 NonPrivatePointer
-               OpStore %res %32
-         %35 = OpLoad %15 %res None
-               OpReturnValue %35
-               OpFunctionEnd
-%compute_main = OpFunction %void None %38
-         %39 = OpLabel
-         %40 = OpFunctionCall %15 %subgroupMatrixLoad_159294
-         %41 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %43 = OpAccessChain %_ptr_StorageBuffer_half %41 %uint_0
-               OpCooperativeMatrixStoreKHR %43 %40 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.wgsl
deleted file mode 100644
index f9de15c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/159294.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_159294() -> subgroup_matrix_result<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_159294(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl
deleted file mode 100644
index c2eaab8..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
-fn subgroupMatrixLoad_17a50d() -> subgroup_matrix_left<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_17a50d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.spvasm
deleted file mode 100644
index 76bc79c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.spvasm
+++ /dev/null
@@ -1,85 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 43
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_17a50d "subgroupMatrixLoad_17a50d"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%subgroupMatrixLoad_17a50d = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %26 = OpLoad %uint %arg_1 None
-         %27 = OpLoad %uint %arg_3 None
-         %28 = OpAccessChain %_ptr_StorageBuffer_uint %24 %26
-         %30 = OpCooperativeMatrixLoadKHR %14 %28 %uint_1 %27 NonPrivatePointer
-               OpStore %res %30
-         %33 = OpLoad %14 %res None
-               OpReturnValue %33
-               OpFunctionEnd
-%compute_main = OpFunction %void None %36
-         %37 = OpLabel
-         %38 = OpFunctionCall %14 %subgroupMatrixLoad_17a50d
-         %39 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %41 = OpAccessChain %_ptr_StorageBuffer_uint %39 %uint_0
-               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.wgsl
deleted file mode 100644
index cb16a33..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/17a50d.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_17a50d() -> subgroup_matrix_left<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_17a50d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl
new file mode 100644
index 0000000..fa4dec8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<workgroup, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_1a0572() -> subgroup_matrix_result<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_1a0572(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.msl
new file mode 100644
index 0000000..0a15c64
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.msl
@@ -0,0 +1,57 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_1a0572(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0h;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_1a0572(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.spvasm
new file mode 100644
index 0000000..3b79548
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.spvasm
@@ -0,0 +1,117 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_1a0572 "subgroupMatrixLoad_1a0572"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_half_uint_1024_0 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024_0 = OpTypePointer Workgroup %_arr_half_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_1a0572 = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_Workgroup_half %arg_0 %24
+         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %14 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %35
+%tint_local_index = OpFunctionParameter %uint
+         %36 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %42 = OpPhi %uint %tint_local_index %37 %43 %39
+               OpLoopMerge %41 %39 None
+               OpBranch %38
+         %38 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %42 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %41
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %42
+               OpStore %58 %half_0x0p_0 NonPrivatePointer
+               OpBranch %39
+         %39 = OpLabel
+         %43 = OpIAdd %uint %42 %uint_1
+               OpBranch %40
+         %41 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %14 %subgroupMatrixLoad_1a0572
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_half %47 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.wgsl
new file mode 100644
index 0000000..3c292b5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixLoad_1a0572() -> subgroup_matrix_result<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_1a0572(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl
new file mode 100644
index 0000000..25ecb95
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_23385e() -> subgroup_matrix_right<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_23385e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/0d1b2e.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0d6e8e.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.spvasm
new file mode 100644
index 0000000..8052880
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 41
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_23385e "subgroupMatrixLoad_23385e"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_23385e = OpFunction %12 None %16
+         %17 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_12 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %21 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_StorageBuffer_uint %21 %24
+         %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %12 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main = OpFunction %void None %34
+         %35 = OpLabel
+         %36 = OpFunctionCall %12 %subgroupMatrixLoad_23385e
+         %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %38 = OpAccessChain %_ptr_StorageBuffer_uint %37 %uint_0
+               OpCooperativeMatrixStoreKHR %38 %36 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.wgsl
new file mode 100644
index 0000000..c4a8cad
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_23385e() -> subgroup_matrix_right<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_23385e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl
deleted file mode 100644
index 025ed52..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<workgroup, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
-fn subgroupMatrixLoad_37b559() -> subgroup_matrix_right<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_37b559(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.msl
deleted file mode 100644
index 8b7e1ea..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.msl
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_37b559(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0f;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_37b559(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm
deleted file mode 100644
index 0d27aac..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.spvasm
+++ /dev/null
@@ -1,114 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_37b559 "subgroupMatrixLoad_37b559"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %35 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-       %bool = OpTypeBool
-    %float_0 = OpConstant %float 0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_37b559 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %uint %arg_3 None
-         %26 = OpAccessChain %_ptr_Workgroup_float %arg_0 %24
-         %28 = OpCooperativeMatrixLoadKHR %15 %26 %uint_1 %25 NonPrivatePointer
-               OpStore %res %28
-         %31 = OpLoad %15 %res None
-               OpReturnValue %31
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %35
-%tint_local_index = OpFunctionParameter %uint
-         %36 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-               OpBranch %40
-         %40 = OpLabel
-         %42 = OpPhi %uint %tint_local_index %37 %43 %39
-               OpLoopMerge %41 %39 None
-               OpBranch %38
-         %38 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %42 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %41
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %42
-               OpStore %58 %float_0 NonPrivatePointer
-               OpBranch %39
-         %39 = OpLabel
-         %43 = OpIAdd %uint %42 %uint_1
-               OpBranch %40
-         %41 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %15 %subgroupMatrixLoad_37b559
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_float %48 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.wgsl
deleted file mode 100644
index f951b92..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixLoad_37b559() -> subgroup_matrix_right<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_37b559(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl
deleted file mode 100644
index 919e949..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
-fn subgroupMatrixLoad_3a046e() -> subgroup_matrix_right<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_3a046e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.msl
deleted file mode 100644
index 5bec29d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_3a046e(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_3a046e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.spvasm
deleted file mode 100644
index 0399664..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,89 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_3a046e "subgroupMatrixLoad_3a046e"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-%subgroupMatrixLoad_3a046e = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_half %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_3a046e
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_half %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.wgsl
deleted file mode 100644
index 419f591..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/3a046e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,23 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_3a046e() -> subgroup_matrix_right<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_3a046e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl
new file mode 100644
index 0000000..b7ca609
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_42db25() -> subgroup_matrix_result<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_42db25(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.spvasm
new file mode 100644
index 0000000..8bbfdd0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_42db25 "subgroupMatrixLoad_42db25"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+               OpDecorate %7 NonWritable
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024_0 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_42db25 = OpFunction %12 None %16
+         %17 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_12 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_uint %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %12 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %12 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %12 %subgroupMatrixLoad_42db25
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_uint_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.wgsl
new file mode 100644
index 0000000..7788a4b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_42db25() -> subgroup_matrix_result<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_42db25(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl
new file mode 100644
index 0000000..e9107e7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_43c097() -> subgroup_matrix_result<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_43c097(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.spvasm
new file mode 100644
index 0000000..55f1075
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_43c097 "subgroupMatrixLoad_43c097"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %36 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_43c097 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %uint %arg_3 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_int %23 %26
+         %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+               OpStore %res %30
+         %33 = OpLoad %13 %res None
+               OpReturnValue %33
+               OpFunctionEnd
+%compute_main = OpFunction %void None %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %13 %subgroupMatrixLoad_43c097
+         %39 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_int %39 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %38 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.wgsl
new file mode 100644
index 0000000..fc2d933
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_43c097() -> subgroup_matrix_result<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_43c097(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl
new file mode 100644
index 0000000..43a5163
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<workgroup, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_459957() -> subgroup_matrix_result<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_459957(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.msl
new file mode 100644
index 0000000..62ef1b6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.msl
@@ -0,0 +1,57 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_459957(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0f;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_459957(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.spvasm
new file mode 100644
index 0000000..b40c178
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.spvasm
@@ -0,0 +1,114 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_459957 "subgroupMatrixLoad_459957"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_float_uint_1024_0 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024_0 = OpTypePointer Workgroup %_arr_float_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+    %float_0 = OpConstant %float 0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_459957 = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_Workgroup_float %arg_0 %24
+         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %14 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %35
+%tint_local_index = OpFunctionParameter %uint
+         %36 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %42 = OpPhi %uint %tint_local_index %37 %43 %39
+               OpLoopMerge %41 %39 None
+               OpBranch %38
+         %38 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %42 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %41
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %42
+               OpStore %58 %float_0 NonPrivatePointer
+               OpBranch %39
+         %39 = OpLabel
+         %43 = OpIAdd %uint %42 %uint_1
+               OpBranch %40
+         %41 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %14 %subgroupMatrixLoad_459957
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_float %47 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.wgsl
new file mode 100644
index 0000000..c35176f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixLoad_459957() -> subgroup_matrix_result<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_459957(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl
deleted file mode 100644
index 19141b2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<workgroup, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
-fn subgroupMatrixLoad_4c307c() -> subgroup_matrix_result<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_4c307c(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm
deleted file mode 100644
index 2649c2b..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.spvasm
+++ /dev/null
@@ -1,114 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_4c307c "subgroupMatrixLoad_4c307c"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-       %bool = OpTypeBool
-      %int_0 = OpConstant %int 0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_4c307c = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %uint %arg_3 None
-         %27 = OpAccessChain %_ptr_Workgroup_int %arg_0 %25
-         %29 = OpCooperativeMatrixLoadKHR %15 %27 %uint_1 %26 NonPrivatePointer
-               OpStore %res %29
-         %32 = OpLoad %15 %res None
-               OpReturnValue %32
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %36
-%tint_local_index = OpFunctionParameter %uint
-         %37 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %uint %tint_local_index %38 %44 %40
-               OpLoopMerge %42 %40 None
-               OpBranch %39
-         %39 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %43 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %42
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %43
-               OpStore %58 %int_0 NonPrivatePointer
-               OpBranch %40
-         %40 = OpLabel
-         %44 = OpIAdd %uint %43 %uint_1
-               OpBranch %41
-         %42 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %15 %subgroupMatrixLoad_4c307c
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_int %48 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.wgsl
deleted file mode 100644
index 83cd7aa..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixLoad_4c307c() -> subgroup_matrix_result<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_4c307c(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl
deleted file mode 100644
index 7960dd1..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
-fn subgroupMatrixLoad_4d29e6() -> subgroup_matrix_right<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_4d29e6(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.spvasm
deleted file mode 100644
index 9e2f52f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.spvasm
+++ /dev/null
@@ -1,87 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_4d29e6 "subgroupMatrixLoad_4d29e6"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-               OpDecorate %7 NonWritable
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
-%subgroupMatrixLoad_4d29e6 = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %23 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %26 = OpLoad %uint %arg_1 None
-         %27 = OpLoad %uint %arg_3 None
-         %28 = OpAccessChain %_ptr_StorageBuffer_uint %23 %26
-         %30 = OpCooperativeMatrixLoadKHR %14 %28 %uint_1 %27 NonPrivatePointer
-               OpStore %res %30
-         %33 = OpLoad %14 %res None
-               OpReturnValue %33
-               OpFunctionEnd
-%compute_main = OpFunction %void None %36
-         %37 = OpLabel
-         %38 = OpFunctionCall %14 %subgroupMatrixLoad_4d29e6
-         %39 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %41 = OpAccessChain %_ptr_StorageBuffer_uint_0 %39 %uint_0
-               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.wgsl
deleted file mode 100644
index 48381ef..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_4d29e6() -> subgroup_matrix_right<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_4d29e6(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl
new file mode 100644
index 0000000..153a8b8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_4fd336() -> subgroup_matrix_right<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_4fd336(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.msl
new file mode 100644
index 0000000..9e952ee
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_4fd336(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_4fd336(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.spvasm
new file mode 100644
index 0000000..6e084b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_4fd336 "subgroupMatrixLoad_4fd336"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024_0 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_4fd336 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_float %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_4fd336
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_float_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.wgsl
new file mode 100644
index 0000000..39d8268
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_4fd336() -> subgroup_matrix_right<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_4fd336(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl
new file mode 100644
index 0000000..f448428
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_52acb0() -> subgroup_matrix_right<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_52acb0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.msl
new file mode 100644
index 0000000..3a22596c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_52acb0(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_52acb0(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.spvasm
new file mode 100644
index 0000000..c4b356b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_52acb0 "subgroupMatrixLoad_52acb0"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_52acb0 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_half %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_52acb0
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_half %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.wgsl
new file mode 100644
index 0000000..a708c5d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_52acb0() -> subgroup_matrix_right<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_52acb0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl
deleted file mode 100644
index 7f6b291..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
-fn subgroupMatrixLoad_58d7e2() -> subgroup_matrix_right<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_58d7e2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.spvasm
deleted file mode 100644
index 3c41379..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,85 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 43
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_58d7e2 "subgroupMatrixLoad_58d7e2"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%subgroupMatrixLoad_58d7e2 = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %23 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %26 = OpLoad %uint %arg_1 None
-         %27 = OpLoad %uint %arg_3 None
-         %28 = OpAccessChain %_ptr_StorageBuffer_uint %23 %26
-         %30 = OpCooperativeMatrixLoadKHR %14 %28 %uint_1 %27 NonPrivatePointer
-               OpStore %res %30
-         %33 = OpLoad %14 %res None
-               OpReturnValue %33
-               OpFunctionEnd
-%compute_main = OpFunction %void None %36
-         %37 = OpLabel
-         %38 = OpFunctionCall %14 %subgroupMatrixLoad_58d7e2
-         %39 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %41 = OpAccessChain %_ptr_StorageBuffer_uint %39 %uint_0
-               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.wgsl
deleted file mode 100644
index fef1df5..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_58d7e2() -> subgroup_matrix_right<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_58d7e2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl
deleted file mode 100644
index f9995ab..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
-fn subgroupMatrixLoad_5aaf3b() -> subgroup_matrix_result<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5aaf3b(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.spvasm
deleted file mode 100644
index 2b0aa38..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.spvasm
+++ /dev/null
@@ -1,87 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_5aaf3b "subgroupMatrixLoad_5aaf3b"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %38 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%subgroupMatrixLoad_5aaf3b = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %uint %arg_3 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_int %25 %28
-         %32 = OpCooperativeMatrixLoadKHR %15 %30 %uint_1 %29 NonPrivatePointer
-               OpStore %res %32
-         %35 = OpLoad %15 %res None
-               OpReturnValue %35
-               OpFunctionEnd
-%compute_main = OpFunction %void None %38
-         %39 = OpLabel
-         %40 = OpFunctionCall %15 %subgroupMatrixLoad_5aaf3b
-         %41 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %43 = OpAccessChain %_ptr_StorageBuffer_int %41 %uint_0
-               OpCooperativeMatrixStoreKHR %43 %40 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.wgsl
deleted file mode 100644
index 706233e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5aaf3b.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_5aaf3b() -> subgroup_matrix_result<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5aaf3b(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl
new file mode 100644
index 0000000..6bc1eca
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<workgroup, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_5c0896() -> subgroup_matrix_left<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5c0896(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.msl
new file mode 100644
index 0000000..b72b488
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.msl
@@ -0,0 +1,57 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_5c0896(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0f;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_5c0896(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.spvasm
new file mode 100644
index 0000000..9debd9b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.spvasm
@@ -0,0 +1,114 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_5c0896 "subgroupMatrixLoad_5c0896"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_float_uint_1024_0 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024_0 = OpTypePointer Workgroup %_arr_float_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+    %float_0 = OpConstant %float 0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_5c0896 = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_Workgroup_float %arg_0 %24
+         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %14 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %35
+%tint_local_index = OpFunctionParameter %uint
+         %36 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %42 = OpPhi %uint %tint_local_index %37 %43 %39
+               OpLoopMerge %41 %39 None
+               OpBranch %38
+         %38 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %42 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %41
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %42
+               OpStore %58 %float_0 NonPrivatePointer
+               OpBranch %39
+         %39 = OpLabel
+         %43 = OpIAdd %uint %42 %uint_1
+               OpBranch %40
+         %41 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %47 = OpFunctionCall %14 %subgroupMatrixLoad_5c0896
+         %48 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_float %48 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.wgsl
new file mode 100644
index 0000000..8f64e7c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixLoad_5c0896() -> subgroup_matrix_left<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5c0896(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl
deleted file mode 100644
index 4dc2f98..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<workgroup, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
-fn subgroupMatrixLoad_641635() -> subgroup_matrix_result<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_641635(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm
deleted file mode 100644
index dafc850..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.spvasm
+++ /dev/null
@@ -1,112 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 63
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_641635 "subgroupMatrixLoad_641635"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %35 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %bool = OpTypeBool
-         %59 = OpTypeFunction %void
-%subgroupMatrixLoad_641635 = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %uint %arg_3 None
-         %26 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %24
-         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
-               OpStore %res %28
-         %31 = OpLoad %14 %res None
-               OpReturnValue %31
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %35
-%tint_local_index = OpFunctionParameter %uint
-         %36 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-               OpBranch %40
-         %40 = OpLabel
-         %42 = OpPhi %uint %tint_local_index %37 %43 %39
-               OpLoopMerge %41 %39 None
-               OpBranch %38
-         %38 = OpLabel
-         %53 = OpUGreaterThanEqual %bool %42 %uint_64
-               OpSelectionMerge %55 None
-               OpBranchConditional %53 %56 %55
-         %56 = OpLabel
-               OpBranch %41
-         %55 = OpLabel
-         %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %42
-               OpStore %57 %uint_0 NonPrivatePointer
-               OpBranch %39
-         %39 = OpLabel
-         %43 = OpIAdd %uint %42 %uint_1
-               OpBranch %40
-         %41 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %46 = OpFunctionCall %14 %subgroupMatrixLoad_641635
-         %47 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %50 = OpAccessChain %_ptr_StorageBuffer_uint %47 %uint_0
-               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %59
-         %60 = OpLabel
-         %61 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %62 = OpFunctionCall %void %compute_main_inner %61
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.wgsl
deleted file mode 100644
index 6e23905..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/641635.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixLoad_641635() -> subgroup_matrix_result<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_641635(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl
new file mode 100644
index 0000000..a9e93a6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_6432c6() -> subgroup_matrix_left<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6432c6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.spvasm
new file mode 100644
index 0000000..f2242d7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 41
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_6432c6 "subgroupMatrixLoad_6432c6"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_6432c6 = OpFunction %12 None %16
+         %17 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_12 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_StorageBuffer_uint %22 %24
+         %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %12 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main = OpFunction %void None %34
+         %35 = OpLabel
+         %36 = OpFunctionCall %12 %subgroupMatrixLoad_6432c6
+         %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %38 = OpAccessChain %_ptr_StorageBuffer_uint %37 %uint_0
+               OpCooperativeMatrixStoreKHR %38 %36 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.wgsl
new file mode 100644
index 0000000..d272281
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_6432c6() -> subgroup_matrix_left<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6432c6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl
deleted file mode 100644
index 2bc2772..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<workgroup, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
-fn subgroupMatrixLoad_67af87() -> subgroup_matrix_left<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_67af87(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm
deleted file mode 100644
index a3fc244..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.spvasm
+++ /dev/null
@@ -1,114 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_67af87 "subgroupMatrixLoad_67af87"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-       %bool = OpTypeBool
-      %int_0 = OpConstant %int 0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_67af87 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %uint %arg_3 None
-         %27 = OpAccessChain %_ptr_Workgroup_int %arg_0 %25
-         %29 = OpCooperativeMatrixLoadKHR %15 %27 %uint_1 %26 NonPrivatePointer
-               OpStore %res %29
-         %32 = OpLoad %15 %res None
-               OpReturnValue %32
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %36
-%tint_local_index = OpFunctionParameter %uint
-         %37 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %uint %tint_local_index %38 %44 %40
-               OpLoopMerge %42 %40 None
-               OpBranch %39
-         %39 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %43 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %42
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %43
-               OpStore %58 %int_0 NonPrivatePointer
-               OpBranch %40
-         %40 = OpLabel
-         %44 = OpIAdd %uint %43 %uint_1
-               OpBranch %41
-         %42 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %48 = OpFunctionCall %15 %subgroupMatrixLoad_67af87
-         %49 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_int %49 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %48 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.wgsl
deleted file mode 100644
index c68aa1a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixLoad_67af87() -> subgroup_matrix_left<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_67af87(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl
new file mode 100644
index 0000000..6729736
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_7bacd3() -> subgroup_matrix_result<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_7bacd3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.msl
new file mode 100644
index 0000000..38ad926
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_7bacd3(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_7bacd3(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.spvasm
new file mode 100644
index 0000000..af904b2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_7bacd3 "subgroupMatrixLoad_7bacd3"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %36 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_7bacd3 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %uint %arg_3 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_float %23 %26
+         %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+               OpStore %res %30
+         %33 = OpLoad %13 %res None
+               OpReturnValue %33
+               OpFunctionEnd
+%compute_main = OpFunction %void None %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %13 %subgroupMatrixLoad_7bacd3
+         %39 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_float %39 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %38 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.wgsl
new file mode 100644
index 0000000..a22e4c6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_7bacd3() -> subgroup_matrix_result<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_7bacd3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl
new file mode 100644
index 0000000..1d20713
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_7bb257() -> subgroup_matrix_left<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_7bb257(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/139ad7.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/67af87.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.spvasm
new file mode 100644
index 0000000..f0eb31a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.spvasm
@@ -0,0 +1,114 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_7bb257 "subgroupMatrixLoad_7bb257"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_int_uint_1024_0 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024_0 = OpTypePointer Workgroup %_arr_int_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_7bb257 = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_Workgroup_int %arg_0 %24
+         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %14 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %35
+%tint_local_index = OpFunctionParameter %uint
+         %36 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %42 = OpPhi %uint %tint_local_index %37 %43 %39
+               OpLoopMerge %41 %39 None
+               OpBranch %38
+         %38 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %42 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %41
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %42
+               OpStore %58 %int_0 NonPrivatePointer
+               OpBranch %39
+         %39 = OpLabel
+         %43 = OpIAdd %uint %42 %uint_1
+               OpBranch %40
+         %41 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %47 = OpFunctionCall %14 %subgroupMatrixLoad_7bb257
+         %48 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_int %48 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.wgsl
new file mode 100644
index 0000000..b731b5c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixLoad_7bb257() -> subgroup_matrix_left<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_7bb257(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl
deleted file mode 100644
index f3d8f38..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
-fn subgroupMatrixLoad_8145a5() -> subgroup_matrix_right<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8145a5(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.spvasm
deleted file mode 100644
index 52a76b4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.spvasm
+++ /dev/null
@@ -1,86 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8145a5 "subgroupMatrixLoad_8145a5"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%subgroupMatrixLoad_8145a5 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_int %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_8145a5
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_int %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.wgsl
deleted file mode 100644
index 4681524..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8145a5.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_8145a5() -> subgroup_matrix_right<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8145a5(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl
deleted file mode 100644
index 0e5b313..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
-fn subgroupMatrixLoad_8403c3() -> subgroup_matrix_right<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8403c3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.msl
deleted file mode 100644
index de0e692..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_8403c3(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_8403c3(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.spvasm
deleted file mode 100644
index c2249a4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.spvasm
+++ /dev/null
@@ -1,88 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8403c3 "subgroupMatrixLoad_8403c3"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
-%subgroupMatrixLoad_8403c3 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_float %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_8403c3
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_float_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.wgsl
deleted file mode 100644
index 379aab2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_8403c3() -> subgroup_matrix_right<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8403c3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl
new file mode 100644
index 0000000..374e539
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_85fc76() -> subgroup_matrix_left<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_85fc76(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.spvasm
new file mode 100644
index 0000000..520e2cc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_85fc76 "subgroupMatrixLoad_85fc76"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+               OpDecorate %7 NonWritable
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024_0 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_85fc76 = OpFunction %12 None %16
+         %17 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_12 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_StorageBuffer_uint %22 %24
+         %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %12 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main = OpFunction %void None %34
+         %35 = OpLabel
+         %36 = OpFunctionCall %12 %subgroupMatrixLoad_85fc76
+         %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024_0 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_uint_0 %37 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %36 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.wgsl
new file mode 100644
index 0000000..45e8ead
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_85fc76() -> subgroup_matrix_left<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_85fc76(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl
new file mode 100644
index 0000000..a5c811c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_865a3c() -> subgroup_matrix_right<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_865a3c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.spvasm
new file mode 100644
index 0000000..d2090fb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_865a3c "subgroupMatrixLoad_865a3c"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024_0 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_865a3c = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_int %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_865a3c
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_int_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.wgsl
new file mode 100644
index 0000000..2f765ef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_865a3c() -> subgroup_matrix_right<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_865a3c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl
deleted file mode 100644
index 12b31c2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<storage, array<i32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
-fn subgroupMatrixLoad_8bd09e() -> subgroup_matrix_right<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8bd09e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.spvasm
deleted file mode 100644
index 134123a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,88 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8bd09e "subgroupMatrixLoad_8bd09e"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
-%subgroupMatrixLoad_8bd09e = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_int %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_8bd09e
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_int_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.wgsl
deleted file mode 100644
index f1a0822..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bd09e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_8bd09e() -> subgroup_matrix_right<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8bd09e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl
deleted file mode 100644
index 7646190..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
-fn subgroupMatrixLoad_8bf049() -> subgroup_matrix_left<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8bf049(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.spvasm
deleted file mode 100644
index ae0f46f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.spvasm
+++ /dev/null
@@ -1,86 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_8bf049 "subgroupMatrixLoad_8bf049"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%subgroupMatrixLoad_8bf049 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_int %25 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_8bf049
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_int %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.wgsl
deleted file mode 100644
index 221ddc7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_8bf049() -> subgroup_matrix_left<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8bf049(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl
new file mode 100644
index 0000000..6f6d8f4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_8ec8ba() -> subgroup_matrix_left<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8ec8ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.msl
new file mode 100644
index 0000000..64675e6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_8ec8ba(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_8ec8ba(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.spvasm
new file mode 100644
index 0000000..ddc3870
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_8ec8ba "subgroupMatrixLoad_8ec8ba"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024_0 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_8ec8ba = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_float %23 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_8ec8ba
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_float_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.wgsl
new file mode 100644
index 0000000..988f138
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_8ec8ba() -> subgroup_matrix_left<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8ec8ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl
deleted file mode 100644
index 02feaeb..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<workgroup, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
-fn subgroupMatrixLoad_93fa82() -> subgroup_matrix_right<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_93fa82(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm
deleted file mode 100644
index 75efba4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.spvasm
+++ /dev/null
@@ -1,112 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 63
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_93fa82 "subgroupMatrixLoad_93fa82"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %34 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %bool = OpTypeBool
-         %59 = OpTypeFunction %void
-%subgroupMatrixLoad_93fa82 = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %23 = OpLoad %uint %arg_1 None
-         %24 = OpLoad %uint %arg_3 None
-         %25 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
-         %27 = OpCooperativeMatrixLoadKHR %14 %25 %uint_1 %24 NonPrivatePointer
-               OpStore %res %27
-         %30 = OpLoad %14 %res None
-               OpReturnValue %30
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %34
-%tint_local_index = OpFunctionParameter %uint
-         %35 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-               OpBranch %39
-         %39 = OpLabel
-         %41 = OpPhi %uint %tint_local_index %36 %42 %38
-               OpLoopMerge %40 %38 None
-               OpBranch %37
-         %37 = OpLabel
-         %53 = OpUGreaterThanEqual %bool %41 %uint_64
-               OpSelectionMerge %55 None
-               OpBranchConditional %53 %56 %55
-         %56 = OpLabel
-               OpBranch %40
-         %55 = OpLabel
-         %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %41
-               OpStore %57 %uint_0 NonPrivatePointer
-               OpBranch %38
-         %38 = OpLabel
-         %42 = OpIAdd %uint %41 %uint_1
-               OpBranch %39
-         %40 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %46 = OpFunctionCall %14 %subgroupMatrixLoad_93fa82
-         %47 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %50 = OpAccessChain %_ptr_StorageBuffer_uint %47 %uint_0
-               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %59
-         %60 = OpLabel
-         %61 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %62 = OpFunctionCall %void %compute_main_inner %61
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.wgsl
deleted file mode 100644
index fbcca1a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/93fa82.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixLoad_93fa82() -> subgroup_matrix_right<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_93fa82(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl
deleted file mode 100644
index 13f96b8..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
-fn subgroupMatrixLoad_943cd7() -> subgroup_matrix_result<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_943cd7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.spvasm
deleted file mode 100644
index 3715c01..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,88 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_943cd7 "subgroupMatrixLoad_943cd7"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %7 DescriptorSet 0
-               OpDecorate %7 Binding 1
-               OpDecorate %7 NonWritable
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
-%subgroupMatrixLoad_943cd7 = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %7 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_uint %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %14 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %14 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %14 %subgroupMatrixLoad_943cd7
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_uint_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.wgsl
deleted file mode 100644
index 2a582c9..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/943cd7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_943cd7() -> subgroup_matrix_result<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_943cd7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl
new file mode 100644
index 0000000..8e131be
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_99d2a2() -> subgroup_matrix_result<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_99d2a2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.spvasm
new file mode 100644
index 0000000..c0cfe38
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_99d2a2 "subgroupMatrixLoad_99d2a2"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_99d2a2 = OpFunction %12 None %16
+         %17 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_12 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_uint %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %12 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %12 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %12 %subgroupMatrixLoad_99d2a2
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_uint %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.wgsl
new file mode 100644
index 0000000..b287aef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_99d2a2() -> subgroup_matrix_result<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_99d2a2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl
deleted file mode 100644
index 10f7af6..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
-fn subgroupMatrixLoad_9c361d() -> subgroup_matrix_result<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9c361d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.msl
deleted file mode 100644
index f35e877..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_9c361d(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_9c361d(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.spvasm
deleted file mode 100644
index b560a42..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.spvasm
+++ /dev/null
@@ -1,87 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_9c361d "subgroupMatrixLoad_9c361d"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %38 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%subgroupMatrixLoad_9c361d = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %uint %arg_3 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_float %25 %28
-         %32 = OpCooperativeMatrixLoadKHR %15 %30 %uint_1 %29 NonPrivatePointer
-               OpStore %res %32
-         %35 = OpLoad %15 %res None
-               OpReturnValue %35
-               OpFunctionEnd
-%compute_main = OpFunction %void None %38
-         %39 = OpLabel
-         %40 = OpFunctionCall %15 %subgroupMatrixLoad_9c361d
-         %41 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %43 = OpAccessChain %_ptr_StorageBuffer_float %41 %uint_0
-               OpCooperativeMatrixStoreKHR %43 %40 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.wgsl
deleted file mode 100644
index a2b070c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c361d.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_9c361d() -> subgroup_matrix_result<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9c361d(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl
deleted file mode 100644
index 92b1973..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, array<f32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
-fn subgroupMatrixLoad_9e19b3() -> subgroup_matrix_result<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9e19b3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.msl
deleted file mode 100644
index 805dbcb..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_9e19b3(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_9e19b3(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.spvasm
deleted file mode 100644
index bb4893b..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.spvasm
+++ /dev/null
@@ -1,89 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_9e19b3 "subgroupMatrixLoad_9e19b3"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %38 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
-%subgroupMatrixLoad_9e19b3 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %uint %arg_3 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_float %25 %28
-         %32 = OpCooperativeMatrixLoadKHR %15 %30 %uint_1 %29 NonPrivatePointer
-               OpStore %res %32
-         %35 = OpLoad %15 %res None
-               OpReturnValue %35
-               OpFunctionEnd
-%compute_main = OpFunction %void None %38
-         %39 = OpLabel
-         %40 = OpFunctionCall %15 %subgroupMatrixLoad_9e19b3
-         %41 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %43 = OpAccessChain %_ptr_StorageBuffer_float_0 %41 %uint_0
-               OpCooperativeMatrixStoreKHR %43 %40 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.wgsl
deleted file mode 100644
index 29b9b3c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e19b3.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_9e19b3() -> subgroup_matrix_result<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9e19b3(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl
new file mode 100644
index 0000000..164c81b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_9e2d69() -> subgroup_matrix_left<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9e2d69(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8bf049.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.spvasm
new file mode 100644
index 0000000..190bfb9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_9e2d69 "subgroupMatrixLoad_9e2d69"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_9e2d69 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_int %23 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_9e2d69
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_int %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.wgsl
new file mode 100644
index 0000000..bdb42a2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_9e2d69() -> subgroup_matrix_left<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9e2d69(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl
new file mode 100644
index 0000000..10a6410
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<workgroup, array<f16, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_a13603() -> subgroup_matrix_left<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_a13603(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.msl
new file mode 100644
index 0000000..9184c3d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.msl
@@ -0,0 +1,57 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_a13603(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0h;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_a13603(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.spvasm
new file mode 100644
index 0000000..f8c95bb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.spvasm
@@ -0,0 +1,117 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_a13603 "subgroupMatrixLoad_a13603"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_half_uint_1024_0 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024_0 = OpTypePointer Workgroup %_arr_half_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %14 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_a13603 = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_Workgroup_half %arg_0 %24
+         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %14 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %35
+%tint_local_index = OpFunctionParameter %uint
+         %36 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %42 = OpPhi %uint %tint_local_index %37 %43 %39
+               OpLoopMerge %41 %39 None
+               OpBranch %38
+         %38 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %42 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %41
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %42
+               OpStore %58 %half_0x0p_0 NonPrivatePointer
+               OpBranch %39
+         %39 = OpLabel
+         %43 = OpIAdd %uint %42 %uint_1
+               OpBranch %40
+         %41 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %47 = OpFunctionCall %14 %subgroupMatrixLoad_a13603
+         %48 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_half %48 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.wgsl
new file mode 100644
index 0000000..c0b0618
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixLoad_a13603() -> subgroup_matrix_left<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_a13603(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl
deleted file mode 100644
index 64b80b4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
-fn subgroupMatrixLoad_ac8eb2() -> subgroup_matrix_left<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ac8eb2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.spvasm
deleted file mode 100644
index 060982a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,88 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_ac8eb2 "subgroupMatrixLoad_ac8eb2"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
-%subgroupMatrixLoad_ac8eb2 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_int %25 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_ac8eb2
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_int_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.wgsl
deleted file mode 100644
index 036dc24..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ac8eb2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_ac8eb2() -> subgroup_matrix_left<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ac8eb2(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl
new file mode 100644
index 0000000..bd8b38a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_b15f59() -> subgroup_matrix_left<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b15f59(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/37b559.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.msl
new file mode 100644
index 0000000..6b159c8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_b15f59(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_b15f59(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.spvasm
new file mode 100644
index 0000000..91f2115
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.spvasm
@@ -0,0 +1,89 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_b15f59 "subgroupMatrixLoad_b15f59"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024_0 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_b15f59 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_half %23 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_b15f59
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_half_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.wgsl
new file mode 100644
index 0000000..c5cf61e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_b15f59() -> subgroup_matrix_left<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b15f59(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl
deleted file mode 100644
index 7894402..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<workgroup, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
-fn subgroupMatrixLoad_b16d34() -> subgroup_matrix_left<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b16d34(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.msl
deleted file mode 100644
index 729198d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.msl
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_b16d34(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0f;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_b16d34(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm
deleted file mode 100644
index 05bb6f4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.spvasm
+++ /dev/null
@@ -1,114 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_b16d34 "subgroupMatrixLoad_b16d34"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-       %bool = OpTypeBool
-    %float_0 = OpConstant %float 0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_b16d34 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %uint %arg_3 None
-         %27 = OpAccessChain %_ptr_Workgroup_float %arg_0 %25
-         %29 = OpCooperativeMatrixLoadKHR %15 %27 %uint_1 %26 NonPrivatePointer
-               OpStore %res %29
-         %32 = OpLoad %15 %res None
-               OpReturnValue %32
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %36
-%tint_local_index = OpFunctionParameter %uint
-         %37 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %uint %tint_local_index %38 %44 %40
-               OpLoopMerge %42 %40 None
-               OpBranch %39
-         %39 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %43 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %42
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %43
-               OpStore %58 %float_0 NonPrivatePointer
-               OpBranch %40
-         %40 = OpLabel
-         %44 = OpIAdd %uint %43 %uint_1
-               OpBranch %41
-         %42 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %48 = OpFunctionCall %15 %subgroupMatrixLoad_b16d34
-         %49 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_float %49 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %48 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.wgsl
deleted file mode 100644
index df66090..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b16d34.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixLoad_b16d34() -> subgroup_matrix_left<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b16d34(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl
new file mode 100644
index 0000000..43725b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_b354d2() -> subgroup_matrix_result<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b354d2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.spvasm
new file mode 100644
index 0000000..6769df8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.spvasm
@@ -0,0 +1,114 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_b354d2 "subgroupMatrixLoad_b354d2"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_int_uint_1024_0 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024_0 = OpTypePointer Workgroup %_arr_int_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_b354d2 = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_Workgroup_int %arg_0 %24
+         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %14 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %35
+%tint_local_index = OpFunctionParameter %uint
+         %36 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+               OpBranch %40
+         %40 = OpLabel
+         %42 = OpPhi %uint %tint_local_index %37 %43 %39
+               OpLoopMerge %41 %39 None
+               OpBranch %38
+         %38 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %42 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %41
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %42
+               OpStore %58 %int_0 NonPrivatePointer
+               OpBranch %39
+         %39 = OpLabel
+         %43 = OpIAdd %uint %42 %uint_1
+               OpBranch %40
+         %41 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %14 %subgroupMatrixLoad_b354d2
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_int %47 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.wgsl
new file mode 100644
index 0000000..20d6150
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixLoad_b354d2() -> subgroup_matrix_result<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b354d2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl
deleted file mode 100644
index d1ff96e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
-fn subgroupMatrixLoad_b5c3c7() -> subgroup_matrix_result<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b5c3c7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.spvasm
deleted file mode 100644
index 9f9f6f0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,89 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 46
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_b5c3c7 "subgroupMatrixLoad_b5c3c7"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %38 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
-%subgroupMatrixLoad_b5c3c7 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %8 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %uint %arg_3 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_int %25 %28
-         %32 = OpCooperativeMatrixLoadKHR %15 %30 %uint_1 %29 NonPrivatePointer
-               OpStore %res %32
-         %35 = OpLoad %15 %res None
-               OpReturnValue %35
-               OpFunctionEnd
-%compute_main = OpFunction %void None %38
-         %39 = OpLabel
-         %40 = OpFunctionCall %15 %subgroupMatrixLoad_b5c3c7
-         %41 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %43 = OpAccessChain %_ptr_StorageBuffer_int_0 %41 %uint_0
-               OpCooperativeMatrixStoreKHR %43 %40 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.wgsl
deleted file mode 100644
index 9b5b03d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b5c3c7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_b5c3c7() -> subgroup_matrix_result<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b5c3c7(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl
deleted file mode 100644
index 3a42b90..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
-fn subgroupMatrixLoad_b79c0e() -> subgroup_matrix_right<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b79c0e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.msl
deleted file mode 100644
index 90652db..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  device SB_RW* sb_rw;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_b79c0e(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
-  simdgroup_store(subgroupMatrixLoad_b79c0e(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.spvasm
deleted file mode 100644
index 8516d46..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.spvasm
+++ /dev/null
@@ -1,86 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 44
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_b79c0e "subgroupMatrixLoad_b79c0e"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%subgroupMatrixLoad_b79c0e = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_float %24 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_b79c0e
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_float %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.wgsl
deleted file mode 100644
index 1849bb0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b79c0e.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixLoad_b79c0e() -> subgroup_matrix_right<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b79c0e(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl
new file mode 100644
index 0000000..0337a23
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_c700ca() -> subgroup_matrix_right<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_c700ca(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.spvasm
new file mode 100644
index 0000000..c937a9c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_c700ca "subgroupMatrixLoad_c700ca"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %7 DescriptorSet 0
+               OpDecorate %7 Binding 1
+               OpDecorate %7 NonWritable
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %7 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024_0 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_c700ca = OpFunction %12 None %16
+         %17 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_12 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %21 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %7 %uint_0 %uint_0
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %uint %arg_3 None
+         %26 = OpAccessChain %_ptr_StorageBuffer_uint %21 %24
+         %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+               OpStore %res %28
+         %31 = OpLoad %12 %res None
+               OpReturnValue %31
+               OpFunctionEnd
+%compute_main = OpFunction %void None %34
+         %35 = OpLabel
+         %36 = OpFunctionCall %12 %subgroupMatrixLoad_c700ca
+         %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024_0 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_uint_0 %37 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %36 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.wgsl
new file mode 100644
index 0000000..c493c3a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_c700ca() -> subgroup_matrix_right<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_c700ca(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl
deleted file mode 100644
index e036fc9..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<workgroup, array<f32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
-fn subgroupMatrixLoad_c857d1() -> subgroup_matrix_result<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_c857d1(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.msl
deleted file mode 100644
index 0e50bff..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.msl
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_c857d1(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0f;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_c857d1(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm
deleted file mode 100644
index e4a00b5..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,114 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_c857d1 "subgroupMatrixLoad_c857d1"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-       %bool = OpTypeBool
-    %float_0 = OpConstant %float 0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_c857d1 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %uint %arg_3 None
-         %27 = OpAccessChain %_ptr_Workgroup_float %arg_0 %25
-         %29 = OpCooperativeMatrixLoadKHR %15 %27 %uint_1 %26 NonPrivatePointer
-               OpStore %res %29
-         %32 = OpLoad %15 %res None
-               OpReturnValue %32
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %36
-%tint_local_index = OpFunctionParameter %uint
-         %37 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %uint %tint_local_index %38 %44 %40
-               OpLoopMerge %42 %40 None
-               OpBranch %39
-         %39 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %43 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %42
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %43
-               OpStore %58 %float_0 NonPrivatePointer
-               OpBranch %40
-         %40 = OpLabel
-         %44 = OpIAdd %uint %43 %uint_1
-               OpBranch %41
-         %42 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %15 %subgroupMatrixLoad_c857d1
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_float %48 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.wgsl
deleted file mode 100644
index bd01d8a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c857d1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixLoad_c857d1() -> subgroup_matrix_result<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_c857d1(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl
new file mode 100644
index 0000000..1fa23df
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_ca4345() -> subgroup_matrix_result<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ca4345(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.spvasm
new file mode 100644
index 0000000..9ea6e9d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.spvasm
@@ -0,0 +1,87 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_ca4345 "subgroupMatrixLoad_ca4345"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024_0 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_ca4345 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %uint %arg_3 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_int %23 %26
+         %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+               OpStore %res %30
+         %33 = OpLoad %13 %res None
+               OpReturnValue %33
+               OpFunctionEnd
+%compute_main = OpFunction %void None %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %13 %subgroupMatrixLoad_ca4345
+         %39 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024_0 %1 %uint_0
+         %41 = OpAccessChain %_ptr_StorageBuffer_int_0 %39 %uint_0
+               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.wgsl
new file mode 100644
index 0000000..af53835
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_ca4345() -> subgroup_matrix_result<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ca4345(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl
new file mode 100644
index 0000000..c93bba3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i32, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_cc5556() -> subgroup_matrix_left<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_cc5556(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.spvasm
new file mode 100644
index 0000000..9fdf456
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_cc5556 "subgroupMatrixLoad_cc5556"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024_0 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_cc5556 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_int %23 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_cc5556
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_int_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.wgsl
new file mode 100644
index 0000000..1d0c8d9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_cc5556() -> subgroup_matrix_left<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_cc5556(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl
new file mode 100644
index 0000000..5630a82
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<workgroup, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_cce4cd() -> subgroup_matrix_right<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_cce4cd(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/0c84dd.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.msl
new file mode 100644
index 0000000..35a2ab0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.msl
@@ -0,0 +1,57 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_cce4cd(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v_1 = 0u;
+    v_1 = tint_local_index;
+    while(true) {
+      uint const v_2 = v_1;
+      if ((v_2 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_2] = 0.0f;
+      {
+        v_1 = (v_2 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  simdgroup_store(subgroupMatrixLoad_cce4cd(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<float, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.spvasm
new file mode 100644
index 0000000..5664ee2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.spvasm
@@ -0,0 +1,114 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_cce4cd "subgroupMatrixLoad_cce4cd"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_float_uint_1024_0 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024_0 = OpTypePointer Workgroup %_arr_float_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+    %float_0 = OpConstant %float 0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_cce4cd = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %uint %arg_3 None
+         %25 = OpAccessChain %_ptr_Workgroup_float %arg_0 %23
+         %27 = OpCooperativeMatrixLoadKHR %14 %25 %uint_1 %24 NonPrivatePointer
+               OpStore %res %27
+         %30 = OpLoad %14 %res None
+               OpReturnValue %30
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %34
+%tint_local_index = OpFunctionParameter %uint
+         %35 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %41 = OpPhi %uint %tint_local_index %36 %42 %38
+               OpLoopMerge %40 %38 None
+               OpBranch %37
+         %37 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %41 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %40
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_float %arg_0 %41
+               OpStore %58 %float_0 NonPrivatePointer
+               OpBranch %38
+         %38 = OpLabel
+         %42 = OpIAdd %uint %41 %uint_1
+               OpBranch %39
+         %40 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %14 %subgroupMatrixLoad_cce4cd
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_float %47 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.wgsl
new file mode 100644
index 0000000..db89798
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixLoad_cce4cd() -> subgroup_matrix_right<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_cce4cd(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl
new file mode 100644
index 0000000..0585d4a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_d2b502() -> subgroup_matrix_result<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d2b502(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/58d7e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.msl
new file mode 100644
index 0000000..82c5239
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_d2b502(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_d2b502(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.spvasm
new file mode 100644
index 0000000..62f07d6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_d2b502 "subgroupMatrixLoad_d2b502"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024_0 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_d2b502 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %uint %arg_3 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_half %23 %26
+         %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+               OpStore %res %30
+         %33 = OpLoad %13 %res None
+               OpReturnValue %33
+               OpFunctionEnd
+%compute_main = OpFunction %void None %36
+         %37 = OpLabel
+         %38 = OpFunctionCall %13 %subgroupMatrixLoad_d2b502
+         %39 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024_0 %1 %uint_0
+         %41 = OpAccessChain %_ptr_StorageBuffer_half_0 %39 %uint_0
+               OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.wgsl
new file mode 100644
index 0000000..db3fba7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_d2b502() -> subgroup_matrix_result<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d2b502(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl
new file mode 100644
index 0000000..b709567
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_d2c77c() -> subgroup_matrix_right<i32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d2c77c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixLoad/4c307c.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.spvasm
new file mode 100644
index 0000000..3edf1d2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.spvasm
@@ -0,0 +1,114 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 65
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_d2c77c "subgroupMatrixLoad_d2c77c"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_int_uint_1024_0 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024_0 = OpTypePointer Workgroup %_arr_int_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %14 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+         %18 = OpTypeFunction %14
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+%_ptr_Function_14 = OpTypePointer Function %14
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+      %int_0 = OpConstant %int 0
+         %61 = OpTypeFunction %void
+%subgroupMatrixLoad_d2c77c = OpFunction %14 None %18
+         %19 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_14 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %uint %arg_3 None
+         %25 = OpAccessChain %_ptr_Workgroup_int %arg_0 %23
+         %27 = OpCooperativeMatrixLoadKHR %14 %25 %uint_1 %24 NonPrivatePointer
+               OpStore %res %27
+         %30 = OpLoad %14 %res None
+               OpReturnValue %30
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %34
+%tint_local_index = OpFunctionParameter %uint
+         %35 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %41 = OpPhi %uint %tint_local_index %36 %42 %38
+               OpLoopMerge %40 %38 None
+               OpBranch %37
+         %37 = OpLabel
+         %54 = OpUGreaterThanEqual %bool %41 %uint_1024
+               OpSelectionMerge %56 None
+               OpBranchConditional %54 %57 %56
+         %57 = OpLabel
+               OpBranch %40
+         %56 = OpLabel
+         %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %41
+               OpStore %58 %int_0 NonPrivatePointer
+               OpBranch %38
+         %38 = OpLabel
+         %42 = OpIAdd %uint %41 %uint_1
+               OpBranch %39
+         %40 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %14 %subgroupMatrixLoad_d2c77c
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+         %50 = OpAccessChain %_ptr_StorageBuffer_int %47 %uint_0
+               OpCooperativeMatrixStoreKHR %50 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %61
+         %62 = OpLabel
+         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %64 = OpFunctionCall %void %compute_main_inner %63
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.wgsl
new file mode 100644
index 0000000..81fba78
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixLoad_d2c77c() -> subgroup_matrix_right<i32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d2c77c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl
new file mode 100644
index 0000000..f211aa2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u32, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_d6e273() -> subgroup_matrix_result<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d6e273(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/8403c3.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.spvasm
new file mode 100644
index 0000000..92cf556
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.spvasm
@@ -0,0 +1,112 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 63
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_d6e273 "subgroupMatrixLoad_d6e273"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_uint_uint_1024_0 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024_0 = OpTypePointer Workgroup %_arr_uint_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+         %59 = OpTypeFunction %void
+%subgroupMatrixLoad_d6e273 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %uint %arg_3 None
+         %25 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
+         %27 = OpCooperativeMatrixLoadKHR %13 %25 %uint_1 %24 NonPrivatePointer
+               OpStore %res %27
+         %30 = OpLoad %13 %res None
+               OpReturnValue %30
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %34
+%tint_local_index = OpFunctionParameter %uint
+         %35 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %41 = OpPhi %uint %tint_local_index %36 %42 %38
+               OpLoopMerge %40 %38 None
+               OpBranch %37
+         %37 = OpLabel
+         %53 = OpUGreaterThanEqual %bool %41 %uint_1024
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %56 %55
+         %56 = OpLabel
+               OpBranch %40
+         %55 = OpLabel
+         %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %41
+               OpStore %57 %uint_0 NonPrivatePointer
+               OpBranch %38
+         %38 = OpLabel
+         %42 = OpIAdd %uint %41 %uint_1
+               OpBranch %39
+         %40 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %45 = OpFunctionCall %13 %subgroupMatrixLoad_d6e273
+         %46 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %49 = OpAccessChain %_ptr_StorageBuffer_uint %46 %uint_0
+               OpCooperativeMatrixStoreKHR %49 %45 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %59
+         %60 = OpLabel
+         %61 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %62 = OpFunctionCall %void %compute_main_inner %61
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.wgsl
new file mode 100644
index 0000000..bb1651d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixLoad_d6e273() -> subgroup_matrix_result<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d6e273(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl
deleted file mode 100644
index f277751..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 64>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
-fn subgroupMatrixLoad_e41808() -> subgroup_matrix_left<f32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e41808(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.msl
deleted file mode 100644
index 6a94532..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.msl
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RO {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device tint_array<float, 1024>* prevent_dce;
-  const device SB_RO* sb_ro;
-};
-
-simdgroup_float8x8 subgroupMatrixLoad_e41808(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
-  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_float8x8 res = v;
-  return res;
-}
-
-kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
-  simdgroup_store(subgroupMatrixLoad_e41808(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.spvasm
deleted file mode 100644
index 9fb39f7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.spvasm
+++ /dev/null
@@ -1,88 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 45
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
-               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
-               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
-               OpName %subgroupMatrixLoad_e41808 "subgroupMatrixLoad_e41808"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_ro_block_tint_explicit_layout Block
-               OpDecorate %8 DescriptorSet 0
-               OpDecorate %8 Binding 1
-               OpDecorate %8 NonWritable
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
-%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
-          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %15 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %37 = OpTypeFunction %void
-%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
-%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
-%subgroupMatrixLoad_e41808 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %8 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %uint %arg_3 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_float %25 %27
-         %31 = OpCooperativeMatrixLoadKHR %15 %29 %uint_1 %28 NonPrivatePointer
-               OpStore %res %31
-         %34 = OpLoad %15 %res None
-               OpReturnValue %34
-               OpFunctionEnd
-%compute_main = OpFunction %void None %37
-         %38 = OpLabel
-         %39 = OpFunctionCall %15 %subgroupMatrixLoad_e41808
-         %40 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
-         %42 = OpAccessChain %_ptr_StorageBuffer_float_0 %40 %uint_0
-               OpCooperativeMatrixStoreKHR %42 %39 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.wgsl
deleted file mode 100644
index fe5948a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e41808.wgsl.expected.wgsl
+++ /dev/null
@@ -1,22 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
-
-struct SB_RO {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
-
-fn subgroupMatrixLoad_e41808() -> subgroup_matrix_left<f32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e41808(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl
new file mode 100644
index 0000000..98d4a7f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, array<f32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_e995ba() -> subgroup_matrix_left<f32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e995ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.msl
new file mode 100644
index 0000000..9a228b3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<float, 1024>* prevent_dce;
+  device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_e995ba(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+  simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_float8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+  simdgroup_store(subgroupMatrixLoad_e995ba(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.spvasm
new file mode 100644
index 0000000..2e386b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_e995ba "subgroupMatrixLoad_e995ba"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_e995ba = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_float %23 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_e995ba
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+         %39 = OpAccessChain %_ptr_StorageBuffer_float %38 %uint_0
+               OpCooperativeMatrixStoreKHR %39 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.wgsl
new file mode 100644
index 0000000..3d739c0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e995ba() -> subgroup_matrix_left<f32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e995ba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl
deleted file mode 100644
index 8e94493..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<right, i32, 8, 8>>(ptr<workgroup, array<i32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
-fn subgroupMatrixLoad_ea84a8() -> subgroup_matrix_right<i32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ea84a8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm
deleted file mode 100644
index 911a1e1..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.spvasm
+++ /dev/null
@@ -1,114 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_ea84a8 "subgroupMatrixLoad_ea84a8"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_1 = OpConstant %uint 1
-         %15 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %35 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-       %bool = OpTypeBool
-      %int_0 = OpConstant %int 0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_ea84a8 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %uint %arg_3 None
-         %26 = OpAccessChain %_ptr_Workgroup_int %arg_0 %24
-         %28 = OpCooperativeMatrixLoadKHR %15 %26 %uint_1 %25 NonPrivatePointer
-               OpStore %res %28
-         %31 = OpLoad %15 %res None
-               OpReturnValue %31
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %35
-%tint_local_index = OpFunctionParameter %uint
-         %36 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-               OpBranch %40
-         %40 = OpLabel
-         %42 = OpPhi %uint %tint_local_index %37 %43 %39
-               OpLoopMerge %41 %39 None
-               OpBranch %38
-         %38 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %42 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %41
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_int %arg_0 %42
-               OpStore %58 %int_0 NonPrivatePointer
-               OpBranch %39
-         %39 = OpLabel
-         %43 = OpIAdd %uint %42 %uint_1
-               OpBranch %40
-         %41 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %15 %subgroupMatrixLoad_ea84a8
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_int %48 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.wgsl
deleted file mode 100644
index 62d997f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ea84a8.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixLoad_ea84a8() -> subgroup_matrix_right<i32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ea84a8(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl
new file mode 100644
index 0000000..df41b9f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u32, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_f406f6() -> subgroup_matrix_right<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f406f6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/4d29e6.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.spvasm
new file mode 100644
index 0000000..affeaa7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.spvasm
@@ -0,0 +1,112 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 63
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_f406f6 "subgroupMatrixLoad_f406f6"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_uint_uint_1024_0 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024_0 = OpTypePointer Workgroup %_arr_uint_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %33 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+         %59 = OpTypeFunction %void
+%subgroupMatrixLoad_f406f6 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpLoad %uint %arg_1 None
+         %23 = OpLoad %uint %arg_3 None
+         %24 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %22
+         %26 = OpCooperativeMatrixLoadKHR %13 %24 %uint_1 %23 NonPrivatePointer
+               OpStore %res %26
+         %29 = OpLoad %13 %res None
+               OpReturnValue %29
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %53 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %56 %55
+         %56 = OpLabel
+               OpBranch %39
+         %55 = OpLabel
+         %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %40
+               OpStore %57 %uint_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %45 = OpFunctionCall %13 %subgroupMatrixLoad_f406f6
+         %46 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %49 = OpAccessChain %_ptr_StorageBuffer_uint %46 %uint_0
+               OpCooperativeMatrixStoreKHR %49 %45 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %59
+         %60 = OpLabel
+         %61 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %62 = OpFunctionCall %void %compute_main_inner %61
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.wgsl
new file mode 100644
index 0000000..ed5e335
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixLoad_f406f6() -> subgroup_matrix_right<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f406f6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl
deleted file mode 100644
index fa9de57..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<workgroup, array<u32, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
-fn subgroupMatrixLoad_f695fe() -> subgroup_matrix_left<u32, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f695fe(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm
deleted file mode 100644
index 7c0c83e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.spvasm
+++ /dev/null
@@ -1,112 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 63
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_f695fe "subgroupMatrixLoad_f695fe"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %14 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %18 = OpTypeFunction %14
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-%_ptr_Function_14 = OpTypePointer Function %14
-       %void = OpTypeVoid
-         %35 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-       %bool = OpTypeBool
-         %59 = OpTypeFunction %void
-%subgroupMatrixLoad_f695fe = OpFunction %14 None %18
-         %19 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_14 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %uint %arg_3 None
-         %26 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %24
-         %28 = OpCooperativeMatrixLoadKHR %14 %26 %uint_1 %25 NonPrivatePointer
-               OpStore %res %28
-         %31 = OpLoad %14 %res None
-               OpReturnValue %31
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %35
-%tint_local_index = OpFunctionParameter %uint
-         %36 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-               OpBranch %40
-         %40 = OpLabel
-         %42 = OpPhi %uint %tint_local_index %37 %43 %39
-               OpLoopMerge %41 %39 None
-               OpBranch %38
-         %38 = OpLabel
-         %53 = OpUGreaterThanEqual %bool %42 %uint_64
-               OpSelectionMerge %55 None
-               OpBranchConditional %53 %56 %55
-         %56 = OpLabel
-               OpBranch %41
-         %55 = OpLabel
-         %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %42
-               OpStore %57 %uint_0 NonPrivatePointer
-               OpBranch %39
-         %39 = OpLabel
-         %43 = OpIAdd %uint %42 %uint_1
-               OpBranch %40
-         %41 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %14 %subgroupMatrixLoad_f695fe
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
-         %50 = OpAccessChain %_ptr_StorageBuffer_uint %48 %uint_0
-               OpCooperativeMatrixStoreKHR %50 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %59
-         %60 = OpLabel
-         %61 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %62 = OpFunctionCall %void %compute_main_inner %61
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.wgsl
deleted file mode 100644
index 78c37da..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f695fe.wgsl.expected.wgsl
+++ /dev/null
@@ -1,18 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixLoad_f695fe() -> subgroup_matrix_left<u32, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f695fe(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl
new file mode 100644
index 0000000..6757c94
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, array<f16, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_f792f5() -> subgroup_matrix_right<f16, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f792f5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.msl
new file mode 100644
index 0000000..ade4d2f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RO {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device tint_array<half, 1024>* prevent_dce;
+  const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_f792f5(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  uint arg_3 = 1u;
+  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+  simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+  simdgroup_half8x8 res = v;
+  return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+  simdgroup_store(subgroupMatrixLoad_f792f5(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.spvasm
new file mode 100644
index 0000000..b204f72
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.spvasm
@@ -0,0 +1,89 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpMemberName %SB_RO_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RO_tint_explicit_layout "SB_RO_tint_explicit_layout"
+               OpMemberName %sb_ro_block_tint_explicit_layout 0 "inner"
+               OpName %sb_ro_block_tint_explicit_layout "sb_ro_block_tint_explicit_layout"
+               OpName %subgroupMatrixLoad_f792f5 "subgroupMatrixLoad_f792f5"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpMemberDecorate %SB_RO_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_ro_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_ro_block_tint_explicit_layout Block
+               OpDecorate %8 DescriptorSet 0
+               OpDecorate %8 Binding 1
+               OpDecorate %8 NonWritable
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%SB_RO_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_ro_block_tint_explicit_layout = OpTypeStruct %SB_RO_tint_explicit_layout
+%_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_ro_block_tint_explicit_layout
+          %8 = OpVariable %_ptr_StorageBuffer_sb_ro_block_tint_explicit_layout StorageBuffer
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_1 = OpConstant %uint 1
+         %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024_0 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+    %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_f792f5 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %22 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %8 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %uint %arg_3 None
+         %27 = OpAccessChain %_ptr_StorageBuffer_half %22 %25
+         %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+               OpStore %res %29
+         %32 = OpLoad %13 %res None
+               OpReturnValue %32
+               OpFunctionEnd
+%compute_main = OpFunction %void None %35
+         %36 = OpLabel
+         %37 = OpFunctionCall %13 %subgroupMatrixLoad_f792f5
+         %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024_0 %1 %uint_0
+         %40 = OpAccessChain %_ptr_StorageBuffer_half_0 %38 %uint_0
+               OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.wgsl
new file mode 100644
index 0000000..1de4b51
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_f792f5() -> subgroup_matrix_right<f16, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f792f5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl
deleted file mode 100644
index 178ca39..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<workgroup, array<f16, 64>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
-fn subgroupMatrixLoad_fd7bd9() -> subgroup_matrix_result<f16, 8, 8>{
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
-  return res;
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_fd7bd9(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 3cd8b8c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: FAILED
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 48f5b71..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,11 +0,0 @@
-SKIP: INVALID
-
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
-********************************************************************
-*  The tint shader compiler has encountered an unexpected error.   *
-*                                                                  *
-*  Please help us fix this issue by submitting a bug report at     *
-*  crbug.com/tint with the source program that triggered the bug.  *
-********************************************************************
-
-tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.msl
deleted file mode 100644
index 94e08c0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.msl
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  device tint_array<half, 1024>* prevent_dce;
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-simdgroup_half8x8 subgroupMatrixLoad_fd7bd9(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  uint arg_3 = 1u;
-  simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
-  simdgroup_load(v, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_3), ulong2(0ul), true);
-  simdgroup_half8x8 res = v;
-  return res;
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v_1 = 0u;
-    v_1 = tint_local_index;
-    while(true) {
-      uint const v_2 = v_1;
-      if ((v_2 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_2] = 0.0h;
-      {
-        v_1 = (v_2 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  simdgroup_store(subgroupMatrixLoad_fd7bd9(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], device tint_array<half, 1024>* prevent_dce [[buffer(0)]], threadgroup tint_symbol_1* v_3 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .arg_0=(&(*v_3).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm
deleted file mode 100644
index 2375cbb..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.spvasm
+++ /dev/null
@@ -1,117 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 65
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
-               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixLoad_fd7bd9 "subgroupMatrixLoad_fd7bd9"
-               OpName %arg_1 "arg_1"
-               OpName %arg_3 "arg_3"
-               OpName %res "res"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_1024 ArrayStride 2
-               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %prevent_dce_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-  %uint_1024 = OpConstant %uint 1024
-%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
-%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
-%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %15 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-         %19 = OpTypeFunction %15
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-%_ptr_Function_15 = OpTypePointer Function %15
-       %void = OpTypeVoid
-         %36 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-       %bool = OpTypeBool
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %61 = OpTypeFunction %void
-%subgroupMatrixLoad_fd7bd9 = OpFunction %15 None %19
-         %20 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_3 = OpVariable %_ptr_Function_uint Function
-        %res = OpVariable %_ptr_Function_15 Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_3 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %uint %arg_3 None
-         %27 = OpAccessChain %_ptr_Workgroup_half %arg_0 %25
-         %29 = OpCooperativeMatrixLoadKHR %15 %27 %uint_1 %26 NonPrivatePointer
-               OpStore %res %29
-         %32 = OpLoad %15 %res None
-               OpReturnValue %32
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %36
-%tint_local_index = OpFunctionParameter %uint
-         %37 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-               OpBranch %41
-         %41 = OpLabel
-         %43 = OpPhi %uint %tint_local_index %38 %44 %40
-               OpLoopMerge %42 %40 None
-               OpBranch %39
-         %39 = OpLabel
-         %54 = OpUGreaterThanEqual %bool %43 %uint_64
-               OpSelectionMerge %56 None
-               OpBranchConditional %54 %57 %56
-         %57 = OpLabel
-               OpBranch %42
-         %56 = OpLabel
-         %58 = OpAccessChain %_ptr_Workgroup_half %arg_0 %43
-               OpStore %58 %half_0x0p_0 NonPrivatePointer
-               OpBranch %40
-         %40 = OpLabel
-         %44 = OpIAdd %uint %43 %uint_1
-               OpBranch %41
-         %42 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %47 = OpFunctionCall %15 %subgroupMatrixLoad_fd7bd9
-         %48 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
-         %51 = OpAccessChain %_ptr_StorageBuffer_half %48 %uint_0
-               OpCooperativeMatrixStoreKHR %51 %47 %uint_0 %uint_64 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %61
-         %62 = OpLabel
-         %63 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %64 = OpFunctionCall %void %compute_main_inner %63
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.wgsl
deleted file mode 100644
index fc0b875..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fd7bd9.wgsl.expected.wgsl
+++ /dev/null
@@ -1,19 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixLoad_fd7bd9() -> subgroup_matrix_result<f16, 8, 8> {
-  var arg_1 = 1u;
-  const arg_2 = true;
-  var arg_3 = 1u;
-  var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
-  return res;
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_fd7bd9(), false, 64);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl
new file mode 100644
index 0000000..1dd3818
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u32, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_fde5b5() -> subgroup_matrix_left<u32, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_fde5b5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixLoad/01c615.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.spvasm
new file mode 100644
index 0000000..c0214d5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.spvasm
@@ -0,0 +1,112 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 63
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %prevent_dce_block_tint_explicit_layout 0 "inner"
+               OpName %prevent_dce_block_tint_explicit_layout "prevent_dce_block_tint_explicit_layout"
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixLoad_fde5b5 "subgroupMatrixLoad_fde5b5"
+               OpName %arg_1 "arg_1"
+               OpName %arg_3 "arg_3"
+               OpName %res "res"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %prevent_dce_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %prevent_dce_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout = OpTypePointer StorageBuffer %prevent_dce_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block_tint_explicit_layout StorageBuffer
+%_arr_uint_uint_1024_0 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024_0 = OpTypePointer Workgroup %_arr_uint_uint_1024_0
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024_0 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %13 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+%_ptr_Function_13 = OpTypePointer Function %13
+       %void = OpTypeVoid
+         %34 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+    %uint_64 = OpConstant %uint 64
+       %bool = OpTypeBool
+         %59 = OpTypeFunction %void
+%subgroupMatrixLoad_fde5b5 = OpFunction %13 None %17
+         %18 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_3 = OpVariable %_ptr_Function_uint Function
+        %res = OpVariable %_ptr_Function_13 Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_3 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %uint %arg_3 None
+         %25 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
+         %27 = OpCooperativeMatrixLoadKHR %13 %25 %uint_1 %24 NonPrivatePointer
+               OpStore %res %27
+         %30 = OpLoad %13 %res None
+               OpReturnValue %30
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %34
+%tint_local_index = OpFunctionParameter %uint
+         %35 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+               OpBranch %39
+         %39 = OpLabel
+         %41 = OpPhi %uint %tint_local_index %36 %42 %38
+               OpLoopMerge %40 %38 None
+               OpBranch %37
+         %37 = OpLabel
+         %53 = OpUGreaterThanEqual %bool %41 %uint_1024
+               OpSelectionMerge %55 None
+               OpBranchConditional %53 %56 %55
+         %56 = OpLabel
+               OpBranch %40
+         %55 = OpLabel
+         %57 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %41
+               OpStore %57 %uint_0 NonPrivatePointer
+               OpBranch %38
+         %38 = OpLabel
+         %42 = OpIAdd %uint %41 %uint_1
+               OpBranch %39
+         %40 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %46 = OpFunctionCall %13 %subgroupMatrixLoad_fde5b5
+         %47 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+         %49 = OpAccessChain %_ptr_StorageBuffer_uint %47 %uint_0
+               OpCooperativeMatrixStoreKHR %49 %46 %uint_0 %uint_64 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %59
+         %60 = OpLabel
+         %61 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %62 = OpFunctionCall %void %compute_main_inner %61
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.wgsl
new file mode 100644
index 0000000..c3661f3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.wgsl
@@ -0,0 +1,18 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixLoad_fde5b5() -> subgroup_matrix_left<u32, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 1u;
+  var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(arg_0), arg_1, arg_2, arg_3);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_fde5b5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.msl
index 42a8fd7..9aafbd0 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
 
 fn subgroupMatrixMultiply_5677fc() -> subgroup_matrix_result<f32, 8, 8> {
   var arg_0 = subgroup_matrix_left<f16, 8, 8>();
@@ -44,7 +44,7 @@
     %arg_1:ptr<function, subgroup_matrix_right<f16, 8, 8>, read_write> = var %4
     %6:subgroup_matrix_left<f16, 8, 8> = load %arg_0
     %7:subgroup_matrix_right<f16, 8, 8> = load %arg_1
-    %8:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var
+    %8:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var undef
     %9:subgroup_matrix_result<f32, 8, 8> = load %8
     %10:void = msl.simdgroup_multiply %9, %6, %7
     %11:subgroup_matrix_result<f32, 8, 8> = load %8
@@ -53,7 +53,7 @@
     ret %13
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %16:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %16
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.msl
index 5a771cd..0a59657 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
 
 fn subgroupMatrixMultiply_8744bd() -> subgroup_matrix_result<f16, 8, 8> {
   var arg_0 = subgroup_matrix_left<f32, 8, 8>();
@@ -44,7 +44,7 @@
     %arg_1:ptr<function, subgroup_matrix_right<f32, 8, 8>, read_write> = var %4
     %6:subgroup_matrix_left<f32, 8, 8> = load %arg_0
     %7:subgroup_matrix_right<f32, 8, 8> = load %arg_1
-    %8:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var
+    %8:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var undef
     %9:subgroup_matrix_result<f16, 8, 8> = load %8
     %10:void = msl.simdgroup_multiply %9, %6, %7
     %11:subgroup_matrix_result<f16, 8, 8> = load %8
@@ -53,7 +53,7 @@
     ret %13
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %16:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %16
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl
index 5bca816..96bf030 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
 
 fn subgroupMatrixMultiplyAccumulate_071472() -> subgroup_matrix_result<f32, 8, 8> {
   var arg_0 = subgroup_matrix_left<f16, 8, 8>();
@@ -48,7 +48,7 @@
     %8:subgroup_matrix_left<f16, 8, 8> = load %arg_0
     %9:subgroup_matrix_right<f16, 8, 8> = load %arg_1
     %10:subgroup_matrix_result<f32, 8, 8> = load %arg_2
-    %11:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var
+    %11:ptr<function, subgroup_matrix_result<f32, 8, 8>, read_write> = var undef
     %12:subgroup_matrix_result<f32, 8, 8> = load %11
     %13:void = msl.simdgroup_multiply_accumulate %12, %8, %9, %10
     %14:subgroup_matrix_result<f32, 8, 8> = load %11
@@ -57,7 +57,7 @@
     ret %16
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f32, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %19:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %19
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl
index aef3052..d3b867f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.msl
@@ -1,10 +1,10 @@
-SKIP: FAILED
+SKIP: INVALID
 
 
 enable chromium_experimental_subgroup_matrix;
 enable f16;
 
-@internal(disable_validation__binding_point_collision) @group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
 
 fn subgroupMatrixMultiplyAccumulate_c4062a() -> subgroup_matrix_result<f16, 8, 8> {
   var arg_0 = subgroup_matrix_left<f32, 8, 8>();
@@ -48,7 +48,7 @@
     %8:subgroup_matrix_left<f32, 8, 8> = load %arg_0
     %9:subgroup_matrix_right<f32, 8, 8> = load %arg_1
     %10:subgroup_matrix_result<f16, 8, 8> = load %arg_2
-    %11:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var
+    %11:ptr<function, subgroup_matrix_result<f16, 8, 8>, read_write> = var undef
     %12:subgroup_matrix_result<f16, 8, 8> = load %11
     %13:void = msl.simdgroup_multiply_accumulate %12, %8, %9, %10
     %14:subgroup_matrix_result<f16, 8, 8> = load %11
@@ -57,7 +57,7 @@
     ret %16
   }
 }
-%compute_main = @compute @workgroup_size(1u, 1u, 1u) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%prevent_dce:ptr<storage, array<f16, 1024>, read_write> [@binding_point(0, 0)]):void {
   $B2: {
     %19:tint_module_vars_struct = construct %prevent_dce
     %tint_module_vars:tint_module_vars_struct = let %19
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl
new file mode 100644
index 0000000..a67dcc8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f32, 1024>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_0268e9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..91d6b24
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_0268e9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..816291a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_0268e9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.msl
new file mode 100644
index 0000000..a4abe9a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.msl
@@ -0,0 +1,54 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_0268e9(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0f;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_0268e9(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.spvasm
new file mode 100644
index 0000000..7b66dac
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.spvasm
@@ -0,0 +1,97 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 55
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_0268e9 "subgroupMatrixStore_0268e9"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024 = OpTypePointer Workgroup %_arr_float_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+         %33 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_0268e9 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %17 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_Workgroup_float %arg_0 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %46 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %49 %48
+         %49 = OpLabel
+               OpBranch %39
+         %48 = OpLabel
+         %50 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40
+               OpStore %50 %float_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %45 = OpFunctionCall %void %subgroupMatrixStore_0268e9
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %52 = OpLabel
+         %53 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %54 = OpFunctionCall %void %compute_main_inner %53
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.wgsl
new file mode 100644
index 0000000..0d4b53d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_0268e9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0268e9();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl
new file mode 100644
index 0000000..f4907a6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f16, 1024>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_0413f0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..b4fb505
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,27 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_0413f0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..64b98b4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,27 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_0413f0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.msl
new file mode 100644
index 0000000..68f2146
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.msl
@@ -0,0 +1,54 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_0413f0(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0h;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_0413f0(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.spvasm
new file mode 100644
index 0000000..31e9e80
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.spvasm
@@ -0,0 +1,99 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_0413f0 "subgroupMatrixStore_0413f0"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024 = OpTypePointer Workgroup %_arr_half_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+         %32 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_0413f0 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %17 %arg_2 None
+         %26 = OpLoad %uint %arg_4 None
+         %27 = OpAccessChain %_ptr_Workgroup_half %arg_0 %24
+               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %32
+%tint_local_index = OpFunctionParameter %uint
+         %33 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+         %39 = OpPhi %uint %tint_local_index %34 %40 %36
+               OpLoopMerge %38 %36 None
+               OpBranch %35
+         %35 = OpLabel
+         %45 = OpUGreaterThanEqual %bool %39 %uint_1024
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %48 %47
+         %48 = OpLabel
+               OpBranch %38
+         %47 = OpLabel
+         %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %39
+               OpStore %49 %half_0x0p_0 NonPrivatePointer
+               OpBranch %36
+         %36 = OpLabel
+         %40 = OpIAdd %uint %39 %uint_1
+               OpBranch %37
+         %38 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %44 = OpFunctionCall %void %subgroupMatrixStore_0413f0
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %51 = OpLabel
+         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %53 = OpFunctionCall %void %compute_main_inner %52
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.wgsl
new file mode 100644
index 0000000..b251162
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.wgsl
@@ -0,0 +1,17 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_0413f0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_0413f0();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl
deleted file mode 100644
index 9ddccfc..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f16, 64>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_0522d1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.dxc.hlsl
deleted file mode 100644
index b57afb2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_0522d1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.fxc.hlsl
deleted file mode 100644
index c2aaba3..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_0522d1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.msl
deleted file mode 100644
index 1367413..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_0522d1(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_0522d1(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.spvasm
deleted file mode 100644
index aa8f84c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,74 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_0522d1 "subgroupMatrixStore_0522d1"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%subgroupMatrixStore_0522d1 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %1 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %17 %arg_2 None
-         %29 = OpLoad %uint %arg_4 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_half %25 %27
-               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %subgroupMatrixStore_0522d1
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.wgsl
deleted file mode 100644
index becf985..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,21 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_0522d1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_0522d1();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl
deleted file mode 100644
index 97ea073..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f16, 64>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_127fb7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index f900068..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_127fb7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index f690769..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_127fb7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.msl
deleted file mode 100644
index fe13304..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.msl
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_127fb7(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0h;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_127fb7(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm
deleted file mode 100644
index 1e23cea..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,99 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 54
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_127fb7 "subgroupMatrixStore_127fb7"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-         %33 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_127fb7 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %17 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_Workgroup_half %arg_0 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %33
-%tint_local_index = OpFunctionParameter %uint
-         %34 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-         %40 = OpPhi %uint %tint_local_index %35 %41 %37
-               OpLoopMerge %39 %37 None
-               OpBranch %36
-         %36 = OpLabel
-         %45 = OpUGreaterThanEqual %bool %40 %uint_64
-               OpSelectionMerge %47 None
-               OpBranchConditional %45 %48 %47
-         %48 = OpLabel
-               OpBranch %39
-         %47 = OpLabel
-         %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40
-               OpStore %49 %half_0x0p_0 NonPrivatePointer
-               OpBranch %37
-         %37 = OpLabel
-         %41 = OpIAdd %uint %40 %uint_1
-               OpBranch %38
-         %39 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %44 = OpFunctionCall %void %subgroupMatrixStore_127fb7
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %53 = OpFunctionCall %void %compute_main_inner %52
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.wgsl
deleted file mode 100644
index e04540f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_127fb7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_127fb7();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl
new file mode 100644
index 0000000..d9b3a6e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f16, 1024>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_1383a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..e7fcd2a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
@@ -0,0 +1,38 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_1383a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..db9a1a0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
@@ -0,0 +1,38 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_1383a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.msl
new file mode 100644
index 0000000..58c51b3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_1383a5(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_1383a5(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.spvasm
new file mode 100644
index 0000000..a191a27
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_1383a5 "subgroupMatrixStore_1383a5"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%subgroupMatrixStore_1383a5 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %24 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 %uint_0
+         %27 = OpLoad %uint %arg_1 None
+         %28 = OpLoad %17 %arg_2 None
+         %29 = OpLoad %uint %arg_4 None
+         %30 = OpAccessChain %_ptr_StorageBuffer_half %24 %27
+               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %subgroupMatrixStore_1383a5
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.wgsl
new file mode 100644
index 0000000..cc71f94
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.wgsl
@@ -0,0 +1,21 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_1383a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1383a5();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl
new file mode 100644
index 0000000..6a4a7c9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<i32, 1024>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_1433f9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ea97ec6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_1433f9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..da77d62
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_1433f9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.spvasm
new file mode 100644
index 0000000..c0d2ac1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.spvasm
@@ -0,0 +1,97 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 55
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_1433f9 "subgroupMatrixStore_1433f9"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024 = OpTypePointer Workgroup %_arr_int_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+         %33 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_1433f9 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %17 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_Workgroup_int %arg_0 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %46 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %49 %48
+         %49 = OpLabel
+               OpBranch %39
+         %48 = OpLabel
+         %50 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40
+               OpStore %50 %int_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %45 = OpFunctionCall %void %subgroupMatrixStore_1433f9
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %52 = OpLabel
+         %53 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %54 = OpFunctionCall %void %compute_main_inner %53
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.wgsl
new file mode 100644
index 0000000..1ff0e77
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_1433f9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_1433f9();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl
deleted file mode 100644
index 4249236..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f16, 64>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_1466ba() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.dxc.hlsl
deleted file mode 100644
index c259ac4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_1466ba() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.fxc.hlsl
deleted file mode 100644
index e6643cd..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_1466ba() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.msl
deleted file mode 100644
index cbefa0c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_1466ba(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_1466ba(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.spvasm
deleted file mode 100644
index 917a837..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.spvasm
+++ /dev/null
@@ -1,75 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 37
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_1466ba "subgroupMatrixStore_1466ba"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%subgroupMatrixStore_1466ba = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %1 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %17 %arg_2 None
-         %30 = OpLoad %uint %arg_4 None
-         %31 = OpAccessChain %_ptr_StorageBuffer_half %25 %28
-               OpCooperativeMatrixStoreKHR %31 %29 %uint_1 %30 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %subgroupMatrixStore_1466ba
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.wgsl
deleted file mode 100644
index dd23d60..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.wgsl
+++ /dev/null
@@ -1,21 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_1466ba() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_1466ba();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl
deleted file mode 100644
index f8c6979..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<i32, 64>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_184580() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 9586cd0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_184580() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 36e15a0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_184580() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.spvasm
deleted file mode 100644
index c33316c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.spvasm
+++ /dev/null
@@ -1,71 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_184580 "subgroupMatrixStore_184580"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%subgroupMatrixStore_184580 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %1 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %17 %arg_2 None
-         %29 = OpLoad %uint %arg_4 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_int %24 %27
-               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %subgroupMatrixStore_184580
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.wgsl
deleted file mode 100644
index ad58ef0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_184580() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_184580();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl
deleted file mode 100644
index 3d76164..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f32, 64>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_197435() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.dxc.hlsl
deleted file mode 100644
index f6b3dfa..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_197435() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 903fb69..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_197435() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.msl
deleted file mode 100644
index c3ce761..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_197435(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_197435(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.spvasm
deleted file mode 100644
index 2d2158a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.spvasm
+++ /dev/null
@@ -1,71 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_197435 "subgroupMatrixStore_197435"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%subgroupMatrixStore_197435 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %1 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %17 %arg_2 None
-         %29 = OpLoad %uint %arg_4 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_float %25 %27
-               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %subgroupMatrixStore_197435
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.wgsl
deleted file mode 100644
index 5634547..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_197435() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_197435();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl
new file mode 100644
index 0000000..1542ab2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f16, 1024>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_22077b() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8b4da1c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,38 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_22077b() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..84e5559
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,38 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_22077b() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_result<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.msl
new file mode 100644
index 0000000..8e6f62e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_22077b(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_22077b(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.spvasm
new file mode 100644
index 0000000..defa82e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_22077b "subgroupMatrixStore_22077b"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%subgroupMatrixStore_22077b = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 %uint_0
+         %28 = OpLoad %uint %arg_1 None
+         %29 = OpLoad %17 %arg_2 None
+         %30 = OpLoad %uint %arg_4 None
+         %31 = OpAccessChain %_ptr_StorageBuffer_half %25 %28
+               OpCooperativeMatrixStoreKHR %31 %29 %uint_1 %30 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %subgroupMatrixStore_22077b
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.wgsl
new file mode 100644
index 0000000..295628b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.wgsl
@@ -0,0 +1,21 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_22077b() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_22077b();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl
deleted file mode 100644
index 16487b7e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<u32, 64>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_2de0b1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 7d9d340..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_2de0b1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.fxc.hlsl
deleted file mode 100644
index dda1ca3..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_2de0b1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm
deleted file mode 100644
index a3a8903..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.spvasm
+++ /dev/null
@@ -1,95 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 53
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_2de0b1 "subgroupMatrixStore_2de0b1"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-     %uint_0 = OpConstant %uint 0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_Function_16 = OpTypePointer Function %16
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-         %31 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_2de0b1 = OpFunction %void None %10
-         %11 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_16 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %15
-               OpStore %arg_4 %uint_1
-         %23 = OpLoad %uint %arg_1 None
-         %24 = OpLoad %16 %arg_2 None
-         %25 = OpLoad %uint %arg_4 None
-         %26 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
-               OpCooperativeMatrixStoreKHR %26 %24 %uint_1 %25 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %44 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %46 None
-               OpBranchConditional %44 %47 %46
-         %47 = OpLabel
-               OpBranch %37
-         %46 = OpLabel
-         %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38
-               OpStore %48 %uint_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %43 = OpFunctionCall %void %subgroupMatrixStore_2de0b1
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %50 = OpLabel
-         %51 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %52 = OpFunctionCall %void %compute_main_inner %51
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.wgsl
deleted file mode 100644
index 0783eda..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2de0b1.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_2de0b1() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_2de0b1();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl
deleted file mode 100644
index fc8f691..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f32, 64>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_3fcc0f() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 68d8b82..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_3fcc0f() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 259b3d5..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_3fcc0f() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.msl
deleted file mode 100644
index c10a4a9..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_3fcc0f(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_3fcc0f(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.spvasm
deleted file mode 100644
index 2dbd74a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.spvasm
+++ /dev/null
@@ -1,71 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_3fcc0f "subgroupMatrixStore_3fcc0f"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%subgroupMatrixStore_3fcc0f = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %1 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %17 %arg_2 None
-         %29 = OpLoad %uint %arg_4 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_float %24 %27
-               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %subgroupMatrixStore_3fcc0f
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.wgsl
deleted file mode 100644
index ef37230..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_3fcc0f() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_3fcc0f();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl
new file mode 100644
index 0000000..f40dfde
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f16, 1024>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_45de0c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8798db0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,27 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_45de0c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..70ad5f9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,27 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_45de0c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.msl
new file mode 100644
index 0000000..d8cf5a2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.msl
@@ -0,0 +1,54 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_45de0c(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0h;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_45de0c(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.spvasm
new file mode 100644
index 0000000..c902303
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 55
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_45de0c "subgroupMatrixStore_45de0c"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024 = OpTypePointer Workgroup %_arr_half_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+         %33 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_45de0c = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %17 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_Workgroup_half %arg_0 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %46 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %48 None
+               OpBranchConditional %46 %49 %48
+         %49 = OpLabel
+               OpBranch %39
+         %48 = OpLabel
+         %50 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40
+               OpStore %50 %half_0x0p_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %45 = OpFunctionCall %void %subgroupMatrixStore_45de0c
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %52 = OpLabel
+         %53 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %54 = OpFunctionCall %void %compute_main_inner %53
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.wgsl
new file mode 100644
index 0000000..dc09a91
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.wgsl
@@ -0,0 +1,17 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_45de0c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_45de0c();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl
new file mode 100644
index 0000000..94885d8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<i32, 1024>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_47cd26() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..2e0e899
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_47cd26() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..1ac97c9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_47cd26() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.spvasm
new file mode 100644
index 0000000..ad26dd4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_47cd26 "subgroupMatrixStore_47cd26"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%subgroupMatrixStore_47cd26 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 %uint_0
+         %27 = OpLoad %uint %arg_1 None
+         %28 = OpLoad %17 %arg_2 None
+         %29 = OpLoad %uint %arg_4 None
+         %30 = OpAccessChain %_ptr_StorageBuffer_int %25 %27
+               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %subgroupMatrixStore_47cd26
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.wgsl
new file mode 100644
index 0000000..8488adf
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_47cd26() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_47cd26();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl
new file mode 100644
index 0000000..33c4598
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<u32, 1024>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_4980a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..572dc27
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_4980a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..768cea4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_4980a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.spvasm
new file mode 100644
index 0000000..b69f742
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.spvasm
@@ -0,0 +1,70 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 35
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_4980a5 "subgroupMatrixStore_4980a5"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+     %uint_0 = OpConstant %uint 0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_Function_16 = OpTypePointer Function %16
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%subgroupMatrixStore_4980a5 = OpFunction %void None %10
+         %11 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_16 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %15
+               OpStore %arg_4 %uint_1
+         %24 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 %uint_0
+         %26 = OpLoad %uint %arg_1 None
+         %27 = OpLoad %16 %arg_2 None
+         %28 = OpLoad %uint %arg_4 None
+         %29 = OpAccessChain %_ptr_StorageBuffer_uint %24 %26
+               OpCooperativeMatrixStoreKHR %29 %27 %uint_1 %28 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %33 = OpLabel
+         %34 = OpFunctionCall %void %subgroupMatrixStore_4980a5
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.wgsl
new file mode 100644
index 0000000..1181802
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_4980a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_4980a5();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl
deleted file mode 100644
index fcb4ff4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f32, 64>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_49b25b() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 6c4adc0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_49b25b() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 3a55928..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_49b25b() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.msl
deleted file mode 100644
index 76ef02f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.msl
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_49b25b(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0f;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_49b25b(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm
deleted file mode 100644
index 465e469..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.spvasm
+++ /dev/null
@@ -1,96 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 54
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_49b25b "subgroupMatrixStore_49b25b"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-         %32 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_49b25b = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %17 %arg_2 None
-         %26 = OpLoad %uint %arg_4 None
-         %27 = OpAccessChain %_ptr_Workgroup_float %arg_0 %24
-               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %32
-%tint_local_index = OpFunctionParameter %uint
-         %33 = OpLabel
-               OpBranch %34
-         %34 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-         %39 = OpPhi %uint %tint_local_index %34 %40 %36
-               OpLoopMerge %38 %36 None
-               OpBranch %35
-         %35 = OpLabel
-         %45 = OpUGreaterThanEqual %bool %39 %uint_64
-               OpSelectionMerge %47 None
-               OpBranchConditional %45 %48 %47
-         %48 = OpLabel
-               OpBranch %38
-         %47 = OpLabel
-         %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %39
-               OpStore %49 %float_0 NonPrivatePointer
-               OpBranch %36
-         %36 = OpLabel
-         %40 = OpIAdd %uint %39 %uint_1
-               OpBranch %37
-         %38 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %44 = OpFunctionCall %void %subgroupMatrixStore_49b25b
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %53 = OpFunctionCall %void %compute_main_inner %52
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.wgsl
deleted file mode 100644
index 00c08a7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/49b25b.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_49b25b() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_49b25b();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl
deleted file mode 100644
index f887e20..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<i32, 64>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_5671e2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.dxc.hlsl
deleted file mode 100644
index ab580a0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_5671e2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 628c25c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_5671e2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm
deleted file mode 100644
index ea64702..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,96 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 54
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_5671e2 "subgroupMatrixStore_5671e2"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-         %32 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_5671e2 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %17 %arg_2 None
-         %26 = OpLoad %uint %arg_4 None
-         %27 = OpAccessChain %_ptr_Workgroup_int %arg_0 %24
-               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %32
-%tint_local_index = OpFunctionParameter %uint
-         %33 = OpLabel
-               OpBranch %34
-         %34 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-         %39 = OpPhi %uint %tint_local_index %34 %40 %36
-               OpLoopMerge %38 %36 None
-               OpBranch %35
-         %35 = OpLabel
-         %45 = OpUGreaterThanEqual %bool %39 %uint_64
-               OpSelectionMerge %47 None
-               OpBranchConditional %45 %48 %47
-         %48 = OpLabel
-               OpBranch %38
-         %47 = OpLabel
-         %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %39
-               OpStore %49 %int_0 NonPrivatePointer
-               OpBranch %36
-         %36 = OpLabel
-         %40 = OpIAdd %uint %39 %uint_1
-               OpBranch %37
-         %38 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %44 = OpFunctionCall %void %subgroupMatrixStore_5671e2
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %53 = OpFunctionCall %void %compute_main_inner %52
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.wgsl
deleted file mode 100644
index 2c04df7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_5671e2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5671e2();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl
deleted file mode 100644
index 40c96fd..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<u32, 64>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_57de92() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 1c87da3..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_57de92() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 6df7b9a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_57de92() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.spvasm
deleted file mode 100644
index f98f8bc..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.spvasm
+++ /dev/null
@@ -1,69 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 34
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_57de92 "subgroupMatrixStore_57de92"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
-     %uint_0 = OpConstant %uint 0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_Function_16 = OpTypePointer Function %16
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%subgroupMatrixStore_57de92 = OpFunction %void None %10
-         %11 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_16 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %15
-               OpStore %arg_4 %uint_1
-         %23 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %1 %uint_0 %uint_0
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %16 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_StorageBuffer_uint %23 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %subgroupMatrixStore_57de92
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.wgsl
deleted file mode 100644
index 84dc164..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/57de92.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_57de92() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_57de92();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl
deleted file mode 100644
index 8e2c1f6..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<u32, 64>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_5915fe() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.dxc.hlsl
deleted file mode 100644
index aba188b..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_5915fe() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d4de3eb..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_5915fe() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm
deleted file mode 100644
index d3eb209..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.spvasm
+++ /dev/null
@@ -1,95 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 53
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_5915fe "subgroupMatrixStore_5915fe"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_Function_16 = OpTypePointer Function %16
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-         %31 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_5915fe = OpFunction %void None %10
-         %11 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_16 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %15
-               OpStore %arg_4 %uint_1
-         %23 = OpLoad %uint %arg_1 None
-         %24 = OpLoad %16 %arg_2 None
-         %25 = OpLoad %uint %arg_4 None
-         %26 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
-               OpCooperativeMatrixStoreKHR %26 %24 %uint_1 %25 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %31
-%tint_local_index = OpFunctionParameter %uint
-         %32 = OpLabel
-               OpBranch %33
-         %33 = OpLabel
-               OpBranch %36
-         %36 = OpLabel
-         %38 = OpPhi %uint %tint_local_index %33 %39 %35
-               OpLoopMerge %37 %35 None
-               OpBranch %34
-         %34 = OpLabel
-         %44 = OpUGreaterThanEqual %bool %38 %uint_64
-               OpSelectionMerge %46 None
-               OpBranchConditional %44 %47 %46
-         %47 = OpLabel
-               OpBranch %37
-         %46 = OpLabel
-         %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38
-               OpStore %48 %uint_0 NonPrivatePointer
-               OpBranch %35
-         %35 = OpLabel
-         %39 = OpIAdd %uint %38 %uint_1
-               OpBranch %36
-         %37 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %43 = OpFunctionCall %void %subgroupMatrixStore_5915fe
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %50 = OpLabel
-         %51 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %52 = OpFunctionCall %void %compute_main_inner %51
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.wgsl
deleted file mode 100644
index 574f90d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_5915fe() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_5915fe();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl
new file mode 100644
index 0000000..c0406d5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<u32, 1024>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_62c1b6() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ba8eaff
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_62c1b6() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..45adefd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_62c1b6() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.spvasm
new file mode 100644
index 0000000..7644b59
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.spvasm
@@ -0,0 +1,95 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 53
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_62c1b6 "subgroupMatrixStore_62c1b6"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024 = OpTypePointer Workgroup %_arr_uint_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_Function_16 = OpTypePointer Function %16
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+         %31 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_62c1b6 = OpFunction %void None %10
+         %11 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_16 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %15
+               OpStore %arg_4 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %16 %arg_2 None
+         %25 = OpLoad %uint %arg_4 None
+         %26 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
+               OpCooperativeMatrixStoreKHR %26 %24 %uint_1 %25 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %31
+%tint_local_index = OpFunctionParameter %uint
+         %32 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+         %38 = OpPhi %uint %tint_local_index %33 %39 %35
+               OpLoopMerge %37 %35 None
+               OpBranch %34
+         %34 = OpLabel
+         %44 = OpUGreaterThanEqual %bool %38 %uint_1024
+               OpSelectionMerge %46 None
+               OpBranchConditional %44 %47 %46
+         %47 = OpLabel
+               OpBranch %37
+         %46 = OpLabel
+         %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38
+               OpStore %48 %uint_0 NonPrivatePointer
+               OpBranch %35
+         %35 = OpLabel
+         %39 = OpIAdd %uint %38 %uint_1
+               OpBranch %36
+         %37 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %43 = OpFunctionCall %void %subgroupMatrixStore_62c1b6
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %50 = OpLabel
+         %51 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %52 = OpFunctionCall %void %compute_main_inner %51
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.wgsl
new file mode 100644
index 0000000..ab3266b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_62c1b6() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_62c1b6();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl
new file mode 100644
index 0000000..4477eec
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<i32, 1024>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_6578da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..f09a4f9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_6578da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c81e860
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_6578da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/1466ba.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.spvasm
new file mode 100644
index 0000000..092056e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.spvasm
@@ -0,0 +1,96 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_6578da "subgroupMatrixStore_6578da"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024 = OpTypePointer Workgroup %_arr_int_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+         %33 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_6578da = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %17 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_Workgroup_int %arg_0 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %45 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %48 %47
+         %48 = OpLabel
+               OpBranch %39
+         %47 = OpLabel
+         %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40
+               OpStore %49 %int_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %44 = OpFunctionCall %void %subgroupMatrixStore_6578da
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %51 = OpLabel
+         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %53 = OpFunctionCall %void %compute_main_inner %52
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.wgsl
new file mode 100644
index 0000000..a187ba6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_6578da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_6578da();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl
new file mode 100644
index 0000000..7002bb5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<u32, 1024>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_716ef7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..652ddde
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_716ef7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..af41227
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_716ef7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.spvasm
new file mode 100644
index 0000000..46e37d3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.spvasm
@@ -0,0 +1,95 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 53
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_716ef7 "subgroupMatrixStore_716ef7"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024 = OpTypePointer Workgroup %_arr_uint_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+     %uint_0 = OpConstant %uint 0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_Function_16 = OpTypePointer Function %16
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+         %31 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_716ef7 = OpFunction %void None %10
+         %11 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_16 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %15
+               OpStore %arg_4 %uint_1
+         %23 = OpLoad %uint %arg_1 None
+         %24 = OpLoad %16 %arg_2 None
+         %25 = OpLoad %uint %arg_4 None
+         %26 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %23
+               OpCooperativeMatrixStoreKHR %26 %24 %uint_1 %25 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %31
+%tint_local_index = OpFunctionParameter %uint
+         %32 = OpLabel
+               OpBranch %33
+         %33 = OpLabel
+               OpBranch %36
+         %36 = OpLabel
+         %38 = OpPhi %uint %tint_local_index %33 %39 %35
+               OpLoopMerge %37 %35 None
+               OpBranch %34
+         %34 = OpLabel
+         %44 = OpUGreaterThanEqual %bool %38 %uint_1024
+               OpSelectionMerge %46 None
+               OpBranchConditional %44 %47 %46
+         %47 = OpLabel
+               OpBranch %37
+         %46 = OpLabel
+         %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %38
+               OpStore %48 %uint_0 NonPrivatePointer
+               OpBranch %35
+         %35 = OpLabel
+         %39 = OpIAdd %uint %38 %uint_1
+               OpBranch %36
+         %37 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %43 = OpFunctionCall %void %subgroupMatrixStore_716ef7
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %50 = OpLabel
+         %51 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %52 = OpFunctionCall %void %compute_main_inner %51
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.wgsl
new file mode 100644
index 0000000..6b897680
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_716ef7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_716ef7();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl
new file mode 100644
index 0000000..760bb22
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<u32, 1024>, read_write>, u32, subgroup_matrix<right, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_72f3af() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..40d8e3c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_72f3af() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..70a7956
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_72f3af() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.spvasm
new file mode 100644
index 0000000..a548874
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.spvasm
@@ -0,0 +1,69 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_72f3af "subgroupMatrixStore_72f3af"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+     %uint_0 = OpConstant %uint 0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_Function_16 = OpTypePointer Function %16
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%subgroupMatrixStore_72f3af = OpFunction %void None %10
+         %11 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_16 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %15
+               OpStore %arg_4 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %16 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_uint %23 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %subgroupMatrixStore_72f3af
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.wgsl
new file mode 100644
index 0000000..545b50f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_72f3af() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_72f3af();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl
new file mode 100644
index 0000000..1783523
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+var<workgroup> arg_0: array<f16, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f16, 1024>, read_write>, u32, subgroup_matrix<result, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_840822() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8442199
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
@@ -0,0 +1,27 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_840822() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..eda65e3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
@@ -0,0 +1,27 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_840822() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.msl
new file mode 100644
index 0000000..0eb8d7f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.msl
@@ -0,0 +1,54 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<half, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<half, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_840822(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0h;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_840822(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.spvasm
new file mode 100644
index 0000000..6c647a0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.spvasm
@@ -0,0 +1,99 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_840822 "subgroupMatrixStore_840822"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%_ptr_Workgroup__arr_half_uint_1024 = OpTypePointer Workgroup %_arr_half_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_half = OpTypePointer Workgroup %half
+         %33 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_840822 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %17 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_Workgroup_half %arg_0 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %45 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %48 %47
+         %48 = OpLabel
+               OpBranch %39
+         %47 = OpLabel
+         %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40
+               OpStore %49 %half_0x0p_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %44 = OpFunctionCall %void %subgroupMatrixStore_840822
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %51 = OpLabel
+         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %53 = OpFunctionCall %void %compute_main_inner %52
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.wgsl
new file mode 100644
index 0000000..38e8a65
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.wgsl
@@ -0,0 +1,17 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+var<workgroup> arg_0 : array<f16, 1024>;
+
+fn subgroupMatrixStore_840822() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_840822();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl
new file mode 100644
index 0000000..f0d1a8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<u32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<u32, 1024>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_865820() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..09815b6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_865820() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..241a580
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_865820() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.spvasm
new file mode 100644
index 0000000..a619e3f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.spvasm
@@ -0,0 +1,95 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 53
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_865820 "subgroupMatrixStore_865820"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%_ptr_Workgroup__arr_uint_uint_1024 = OpTypePointer Workgroup %_arr_uint_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+     %uint_0 = OpConstant %uint 0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_Function_16 = OpTypePointer Function %16
+%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
+         %32 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_865820 = OpFunction %void None %10
+         %11 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_16 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %15
+               OpStore %arg_4 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %16 %arg_2 None
+         %26 = OpLoad %uint %arg_4 None
+         %27 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %24
+               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %32
+%tint_local_index = OpFunctionParameter %uint
+         %33 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+         %39 = OpPhi %uint %tint_local_index %34 %40 %36
+               OpLoopMerge %38 %36 None
+               OpBranch %35
+         %35 = OpLabel
+         %44 = OpUGreaterThanEqual %bool %39 %uint_1024
+               OpSelectionMerge %46 None
+               OpBranchConditional %44 %47 %46
+         %47 = OpLabel
+               OpBranch %38
+         %46 = OpLabel
+         %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %39
+               OpStore %48 %uint_0 NonPrivatePointer
+               OpBranch %36
+         %36 = OpLabel
+         %40 = OpIAdd %uint %39 %uint_1
+               OpBranch %37
+         %38 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %43 = OpFunctionCall %void %subgroupMatrixStore_865820
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %50 = OpLabel
+         %51 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %52 = OpFunctionCall %void %compute_main_inner %51
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.wgsl
new file mode 100644
index 0000000..c3e0e22
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_865820() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_865820();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl
deleted file mode 100644
index 50c434b..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<f32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f32, 64>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_8a2280() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.dxc.hlsl
deleted file mode 100644
index cf48b50..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_8a2280() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 81e3903..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_8a2280() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 64>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.msl
deleted file mode 100644
index f1a6cb9..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<float, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_8a2280(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_8a2280(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.spvasm
deleted file mode 100644
index bd0c005..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.spvasm
+++ /dev/null
@@ -1,72 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 37
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_8a2280 "subgroupMatrixStore_8a2280"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_float_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_float_uint_64 = OpTypePointer StorageBuffer %_arr_float_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
-%subgroupMatrixStore_8a2280 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_64 %1 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %17 %arg_2 None
-         %30 = OpLoad %uint %arg_4 None
-         %31 = OpAccessChain %_ptr_StorageBuffer_float %25 %28
-               OpCooperativeMatrixStoreKHR %31 %29 %uint_1 %30 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %subgroupMatrixStore_8a2280
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.wgsl
deleted file mode 100644
index d0c9f02..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8a2280.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<f32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_8a2280() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_8a2280();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl
deleted file mode 100644
index 3a3173a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<i32, 64>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_9019ee() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.dxc.hlsl
deleted file mode 100644
index bb9000f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9019ee() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 851decc..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9019ee() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_left<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.spvasm
deleted file mode 100644
index e1b4d7f..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.spvasm
+++ /dev/null
@@ -1,71 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_9019ee "subgroupMatrixStore_9019ee"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%subgroupMatrixStore_9019ee = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %1 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %17 %arg_2 None
-         %29 = OpLoad %uint %arg_4 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_int %25 %27
-               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %subgroupMatrixStore_9019ee
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.wgsl
deleted file mode 100644
index 5d0d8a5..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9019ee.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9019ee() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9019ee();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl
new file mode 100644
index 0000000..861e8ca
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<i32, 1024>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_9991c3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..8134e43
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_9991c3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..003de50
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_9991c3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.spvasm
new file mode 100644
index 0000000..00e3320
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_9991c3 "subgroupMatrixStore_9991c3"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%subgroupMatrixStore_9991c3 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %24 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 %uint_0
+         %27 = OpLoad %uint %arg_1 None
+         %28 = OpLoad %17 %arg_2 None
+         %29 = OpLoad %uint %arg_4 None
+         %30 = OpAccessChain %_ptr_StorageBuffer_int %24 %27
+               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %subgroupMatrixStore_9991c3
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.wgsl
new file mode 100644
index 0000000..c24611e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_9991c3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9991c3();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl
deleted file mode 100644
index 99599ab..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<u32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<u32, 64>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_9a7d60() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 2be6209..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_9a7d60() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.fxc.hlsl
deleted file mode 100644
index e97a35a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_9a7d60() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm
deleted file mode 100644
index 4f85de2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.spvasm
+++ /dev/null
@@ -1,95 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 53
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_9a7d60 "subgroupMatrixStore_9a7d60"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%_ptr_Workgroup__arr_uint_uint_64 = OpTypePointer Workgroup %_arr_uint_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_uint_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-     %uint_0 = OpConstant %uint 0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_Function_16 = OpTypePointer Function %16
-%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
-         %32 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_9a7d60 = OpFunction %void None %10
-         %11 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_16 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %15
-               OpStore %arg_4 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %16 %arg_2 None
-         %26 = OpLoad %uint %arg_4 None
-         %27 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %24
-               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %32
-%tint_local_index = OpFunctionParameter %uint
-         %33 = OpLabel
-               OpBranch %34
-         %34 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-         %39 = OpPhi %uint %tint_local_index %34 %40 %36
-               OpLoopMerge %38 %36 None
-               OpBranch %35
-         %35 = OpLabel
-         %44 = OpUGreaterThanEqual %bool %39 %uint_64
-               OpSelectionMerge %46 None
-               OpBranchConditional %44 %47 %46
-         %47 = OpLabel
-               OpBranch %38
-         %46 = OpLabel
-         %48 = OpAccessChain %_ptr_Workgroup_uint %arg_0 %39
-               OpStore %48 %uint_0 NonPrivatePointer
-               OpBranch %36
-         %36 = OpLabel
-         %40 = OpIAdd %uint %39 %uint_1
-               OpBranch %37
-         %38 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %43 = OpFunctionCall %void %subgroupMatrixStore_9a7d60
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %50 = OpLabel
-         %51 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %52 = OpFunctionCall %void %compute_main_inner %51
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.wgsl
deleted file mode 100644
index 9012157..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9a7d60.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<u32, 64>;
-
-fn subgroupMatrixStore_9a7d60() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9a7d60();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl
deleted file mode 100644
index 6ba9def..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<i32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<i32, 64>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_9fffe5() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 61ffd4b..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9fffe5() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.fxc.hlsl
deleted file mode 100644
index b3d560a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9fffe5() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 64>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.spvasm
deleted file mode 100644
index bf1052c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.spvasm
+++ /dev/null
@@ -1,72 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 37
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_9fffe5 "subgroupMatrixStore_9fffe5"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_int_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_int_uint_64 = OpTypePointer StorageBuffer %_arr_int_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
-%subgroupMatrixStore_9fffe5 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_64 %1 %uint_0 %uint_0
-         %28 = OpLoad %uint %arg_1 None
-         %29 = OpLoad %17 %arg_2 None
-         %30 = OpLoad %uint %arg_4 None
-         %31 = OpAccessChain %_ptr_StorageBuffer_int %25 %28
-               OpCooperativeMatrixStoreKHR %31 %29 %uint_1 %30 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %35 = OpLabel
-         %36 = OpFunctionCall %void %subgroupMatrixStore_9fffe5
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.wgsl
deleted file mode 100644
index e4fb900..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<i32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_9fffe5() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_9fffe5();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl
new file mode 100644
index 0000000..12c7eaf
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f32, 1024>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_a3ed32() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..5961308
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_a3ed32() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..47f5536
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_a3ed32() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5671e2.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.msl
new file mode 100644
index 0000000..7fbe894
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.msl
@@ -0,0 +1,54 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_a3ed32(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0f;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_a3ed32(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.spvasm
new file mode 100644
index 0000000..6d7f3aa
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.spvasm
@@ -0,0 +1,96 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_a3ed32 "subgroupMatrixStore_a3ed32"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024 = OpTypePointer Workgroup %_arr_float_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+         %33 = OpTypeFunction %void %uint
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_a3ed32 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %17 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_Workgroup_float %arg_0 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %33
+%tint_local_index = OpFunctionParameter %uint
+         %34 = OpLabel
+               OpBranch %35
+         %35 = OpLabel
+               OpBranch %38
+         %38 = OpLabel
+         %40 = OpPhi %uint %tint_local_index %35 %41 %37
+               OpLoopMerge %39 %37 None
+               OpBranch %36
+         %36 = OpLabel
+         %45 = OpUGreaterThanEqual %bool %40 %uint_1024
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %48 %47
+         %48 = OpLabel
+               OpBranch %39
+         %47 = OpLabel
+         %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40
+               OpStore %49 %float_0 NonPrivatePointer
+               OpBranch %37
+         %37 = OpLabel
+         %41 = OpIAdd %uint %40 %uint_1
+               OpBranch %38
+         %39 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %44 = OpFunctionCall %void %subgroupMatrixStore_a3ed32
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %51 = OpLabel
+         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %53 = OpFunctionCall %void %compute_main_inner %52
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.wgsl
new file mode 100644
index 0000000..d4bfdbf
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_a3ed32() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a3ed32();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl
new file mode 100644
index 0000000..b0dfe34
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f32, 1024>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_a50ea0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..89f90c8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50ea0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..78ca0591
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50ea0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_right<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.msl
new file mode 100644
index 0000000..f7bcba5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_a50ea0(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_a50ea0(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.spvasm
new file mode 100644
index 0000000..0a38849
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_a50ea0 "subgroupMatrixStore_a50ea0"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%subgroupMatrixStore_a50ea0 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %24 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 %uint_0
+         %27 = OpLoad %uint %arg_1 None
+         %28 = OpLoad %17 %arg_2 None
+         %29 = OpLoad %uint %arg_4 None
+         %30 = OpAccessChain %_ptr_StorageBuffer_float %24 %27
+               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %subgroupMatrixStore_a50ea0
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.wgsl
new file mode 100644
index 0000000..4085fdb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50ea0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50ea0();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl
new file mode 100644
index 0000000..0047c98
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f32, 1024>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_acb4b7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7ab8023
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_acb4b7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..2cc165b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_acb4b7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_result<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/127fb7.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.msl
new file mode 100644
index 0000000..3dc1a95
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_acb4b7(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_acb4b7(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.spvasm
new file mode 100644
index 0000000..84248ff
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_acb4b7 "subgroupMatrixStore_acb4b7"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%subgroupMatrixStore_acb4b7 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 %uint_0
+         %28 = OpLoad %uint %arg_1 None
+         %29 = OpLoad %17 %arg_2 None
+         %30 = OpLoad %uint %arg_4 None
+         %31 = OpAccessChain %_ptr_StorageBuffer_float %25 %28
+               OpCooperativeMatrixStoreKHR %31 %29 %uint_1 %30 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %subgroupMatrixStore_acb4b7
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.wgsl
new file mode 100644
index 0000000..5cb4479
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_acb4b7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_acb4b7();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl
deleted file mode 100644
index f70b879..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f32, 64>, read_write>, u32, subgroup_matrix<result, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_b9ff25() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 06ad310..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_b9ff25() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 4a5e9ef..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_b9ff25() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.msl
deleted file mode 100644
index 81350c3..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.msl
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_b9ff25(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0f;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_b9ff25(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm
deleted file mode 100644
index 7d163ca..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.spvasm
+++ /dev/null
@@ -1,96 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 54
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_b9ff25 "subgroupMatrixStore_b9ff25"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-         %33 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_b9ff25 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %17 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_Workgroup_float %arg_0 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %33
-%tint_local_index = OpFunctionParameter %uint
-         %34 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-         %40 = OpPhi %uint %tint_local_index %35 %41 %37
-               OpLoopMerge %39 %37 None
-               OpBranch %36
-         %36 = OpLabel
-         %45 = OpUGreaterThanEqual %bool %40 %uint_64
-               OpSelectionMerge %47 None
-               OpBranchConditional %45 %48 %47
-         %48 = OpLabel
-               OpBranch %39
-         %47 = OpLabel
-         %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40
-               OpStore %49 %float_0 NonPrivatePointer
-               OpBranch %37
-         %37 = OpLabel
-         %41 = OpIAdd %uint %40 %uint_1
-               OpBranch %38
-         %39 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %44 = OpFunctionCall %void %subgroupMatrixStore_b9ff25
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %53 = OpFunctionCall %void %compute_main_inner %52
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.wgsl
deleted file mode 100644
index 5926d90..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/b9ff25.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_b9ff25() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_b9ff25();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl
deleted file mode 100644
index e3c6ed0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-struct SB_RW {
-  arg_0: array<f16, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<f16, 64>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_ba9442() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 2bac7d7..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_ba9442() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 7850a19..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,38 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_ba9442() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 64>, u32, subgroup_matrix_right<f16, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.msl
deleted file mode 100644
index 156cff4..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.msl
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct SB_RW {
-  /* 0x0000 */ tint_array<half, 64> arg_0;
-};
-
-struct tint_module_vars_struct {
-  device SB_RW* sb_rw;
-};
-
-void subgroupMatrixStore_ba9442(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
-  subgroupMatrixStore_ba9442(tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.spvasm
deleted file mode 100644
index 54c0159..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.spvasm
+++ /dev/null
@@ -1,74 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 36
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_ba9442 "subgroupMatrixStore_ba9442"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_half_uint_64 ArrayStride 2
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_StorageBuffer__arr_half_uint_64 = OpTypePointer StorageBuffer %_arr_half_uint_64
-     %uint_0 = OpConstant %uint 0
-%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
-%subgroupMatrixStore_ba9442 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_64 %1 %uint_0 %uint_0
-         %27 = OpLoad %uint %arg_1 None
-         %28 = OpLoad %17 %arg_2 None
-         %29 = OpLoad %uint %arg_4 None
-         %30 = OpAccessChain %_ptr_StorageBuffer_half %24 %27
-               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %34 = OpLabel
-         %35 = OpFunctionCall %void %subgroupMatrixStore_ba9442
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.wgsl
deleted file mode 100644
index 7dccb2a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ba9442.wgsl.expected.wgsl
+++ /dev/null
@@ -1,21 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-struct SB_RW {
-  arg_0 : array<f16, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_ba9442() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ba9442();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl
deleted file mode 100644
index dcf0f5a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<i32, 64>, read_write>, u32, subgroup_matrix<left, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_bfd0a4() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.dxc.hlsl
deleted file mode 100644
index eeaf34a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_bfd0a4() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 15fa45d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_bfd0a4() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm
deleted file mode 100644
index 958a898..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.spvasm
+++ /dev/null
@@ -1,97 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 55
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_bfd0a4 "subgroupMatrixStore_bfd0a4"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-         %33 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_bfd0a4 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %17 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_Workgroup_int %arg_0 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %33
-%tint_local_index = OpFunctionParameter %uint
-         %34 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-         %40 = OpPhi %uint %tint_local_index %35 %41 %37
-               OpLoopMerge %39 %37 None
-               OpBranch %36
-         %36 = OpLabel
-         %46 = OpUGreaterThanEqual %bool %40 %uint_64
-               OpSelectionMerge %48 None
-               OpBranchConditional %46 %49 %48
-         %49 = OpLabel
-               OpBranch %39
-         %48 = OpLabel
-         %50 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40
-               OpStore %50 %int_0 NonPrivatePointer
-               OpBranch %37
-         %37 = OpLabel
-         %41 = OpIAdd %uint %40 %uint_1
-               OpBranch %38
-         %39 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %45 = OpFunctionCall %void %subgroupMatrixStore_bfd0a4
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %52 = OpLabel
-         %53 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %54 = OpFunctionCall %void %compute_main_inner %53
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.wgsl
deleted file mode 100644
index 2ac910c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfd0a4.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_bfd0a4() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_bfd0a4();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl
new file mode 100644
index 0000000..ee5d3b3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<i32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<i32, 1024>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c28145() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..3c2ec80
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_c28145() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..990b45c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_c28145() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/197435.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/9fffe5.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.spvasm
new file mode 100644
index 0000000..ebdcb63
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_c28145 "subgroupMatrixStore_c28145"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_int_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_int_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_2 = OpConstant %uint 2
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+     %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%subgroupMatrixStore_c28145 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0 %uint_0
+         %28 = OpLoad %uint %arg_1 None
+         %29 = OpLoad %17 %arg_2 None
+         %30 = OpLoad %uint %arg_4 None
+         %31 = OpAccessChain %_ptr_StorageBuffer_int %25 %28
+               OpCooperativeMatrixStoreKHR %31 %29 %uint_1 %30 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %35 = OpLabel
+         %36 = OpFunctionCall %void %subgroupMatrixStore_c28145
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.wgsl
new file mode 100644
index 0000000..7c14c3b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_c28145() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c28145();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl
new file mode 100644
index 0000000..cf37db9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<f32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<f32, 1024>, read_write>, u32, subgroup_matrix<right, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c4a7ce() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..300a78c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_c4a7ce() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..18eb5ee
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_c4a7ce() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.glsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.msl
new file mode 100644
index 0000000..bc275a1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.msl
@@ -0,0 +1,54 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct tint_module_vars_struct {
+  threadgroup tint_array<float, 1024>* arg_0;
+};
+
+struct tint_symbol_1 {
+  tint_array<float, 1024> tint_symbol;
+};
+
+void subgroupMatrixStore_c4a7ce(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
+  {
+    uint v = 0u;
+    v = tint_local_index;
+    while(true) {
+      uint const v_1 = v;
+      if ((v_1 >= 1024u)) {
+        break;
+      }
+      (*tint_module_vars.arg_0)[v_1] = 0.0f;
+      {
+        v = (v_1 + 1u);
+      }
+      continue;
+    }
+  }
+  threadgroup_barrier(mem_flags::mem_threadgroup);
+  subgroupMatrixStore_c4a7ce(tint_module_vars);
+}
+
+kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
+  compute_main_inner(tint_local_index, tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.spvasm
new file mode 100644
index 0000000..e3743f1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.spvasm
@@ -0,0 +1,96 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_c4a7ce "subgroupMatrixStore_c4a7ce"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%_ptr_Workgroup__arr_float_uint_1024 = OpTypePointer Workgroup %_arr_float_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_float = OpTypePointer Workgroup %float
+         %32 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_c4a7ce = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %17 %arg_2 None
+         %26 = OpLoad %uint %arg_4 None
+         %27 = OpAccessChain %_ptr_Workgroup_float %arg_0 %24
+               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %32
+%tint_local_index = OpFunctionParameter %uint
+         %33 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+         %39 = OpPhi %uint %tint_local_index %34 %40 %36
+               OpLoopMerge %38 %36 None
+               OpBranch %35
+         %35 = OpLabel
+         %45 = OpUGreaterThanEqual %bool %39 %uint_1024
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %48 %47
+         %48 = OpLabel
+               OpBranch %38
+         %47 = OpLabel
+         %49 = OpAccessChain %_ptr_Workgroup_float %arg_0 %39
+               OpStore %49 %float_0 NonPrivatePointer
+               OpBranch %36
+         %36 = OpLabel
+         %40 = OpIAdd %uint %39 %uint_1
+               OpBranch %37
+         %38 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %44 = OpFunctionCall %void %subgroupMatrixStore_c4a7ce
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %51 = OpLabel
+         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %53 = OpFunctionCall %void %compute_main_inner %52
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.wgsl
new file mode 100644
index 0000000..2d46a83
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<f32, 1024>;
+
+fn subgroupMatrixStore_c4a7ce() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c4a7ce();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl
deleted file mode 100644
index fd5cb83..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f16, 64>, read_write>, u32, subgroup_matrix<right, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_d07581() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 6325a1b..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_d07581() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.fxc.hlsl
deleted file mode 100644
index d372caf..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_d07581() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.msl
deleted file mode 100644
index 3afa433..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.msl
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_d07581(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0h;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_d07581(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm
deleted file mode 100644
index e35f13a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.spvasm
+++ /dev/null
@@ -1,99 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 54
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_d07581 "subgroupMatrixStore_d07581"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-         %32 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_d07581 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %24 = OpLoad %uint %arg_1 None
-         %25 = OpLoad %17 %arg_2 None
-         %26 = OpLoad %uint %arg_4 None
-         %27 = OpAccessChain %_ptr_Workgroup_half %arg_0 %24
-               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %32
-%tint_local_index = OpFunctionParameter %uint
-         %33 = OpLabel
-               OpBranch %34
-         %34 = OpLabel
-               OpBranch %37
-         %37 = OpLabel
-         %39 = OpPhi %uint %tint_local_index %34 %40 %36
-               OpLoopMerge %38 %36 None
-               OpBranch %35
-         %35 = OpLabel
-         %45 = OpUGreaterThanEqual %bool %39 %uint_64
-               OpSelectionMerge %47 None
-               OpBranchConditional %45 %48 %47
-         %48 = OpLabel
-               OpBranch %38
-         %47 = OpLabel
-         %49 = OpAccessChain %_ptr_Workgroup_half %arg_0 %39
-               OpStore %49 %half_0x0p_0 NonPrivatePointer
-               OpBranch %36
-         %36 = OpLabel
-         %40 = OpIAdd %uint %39 %uint_1
-               OpBranch %37
-         %38 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %44 = OpFunctionCall %void %subgroupMatrixStore_d07581
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %53 = OpFunctionCall %void %compute_main_inner %52
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.wgsl
deleted file mode 100644
index 0420646..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d07581.wgsl.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_d07581() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_right<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_d07581();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl
deleted file mode 100644
index 12747ee..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<u32, 64>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_db6dd2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 946aaba..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_db6dd2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 6447c00..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_db6dd2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.spvasm
deleted file mode 100644
index 6847264..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.spvasm
+++ /dev/null
@@ -1,69 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 34
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_db6dd2 "subgroupMatrixStore_db6dd2"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_Function_16 = OpTypePointer Function %16
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%subgroupMatrixStore_db6dd2 = OpFunction %void None %10
-         %11 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_16 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %15
-               OpStore %arg_4 %uint_1
-         %23 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %1 %uint_0 %uint_0
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %16 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_StorageBuffer_uint %23 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %32 = OpLabel
-         %33 = OpFunctionCall %void %subgroupMatrixStore_db6dd2
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.wgsl
deleted file mode 100644
index c72e530..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/db6dd2.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_db6dd2() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_db6dd2();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl
deleted file mode 100644
index 9dde69d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<f32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f32, 64>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_dc92cf() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 240eed5..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_dc92cf() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 071a3ce..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_dc92cf() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.msl
deleted file mode 100644
index e98cd84..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.msl
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<float, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<float, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_dc92cf(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0f;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_dc92cf(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm
deleted file mode 100644
index 45623ae..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.spvasm
+++ /dev/null
@@ -1,97 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 55
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_dc92cf "subgroupMatrixStore_dc92cf"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-      %float = OpTypeFloat 32
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_float_uint_64 = OpTypeArray %float %uint_64
-%_ptr_Workgroup__arr_float_uint_64 = OpTypePointer Workgroup %_arr_float_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_float_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
-    %float_0 = OpConstant %float 0
-         %16 = OpConstantComposite %17 %float_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_float = OpTypePointer Workgroup %float
-         %33 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_dc92cf = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %17 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_Workgroup_float %arg_0 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %33
-%tint_local_index = OpFunctionParameter %uint
-         %34 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-         %40 = OpPhi %uint %tint_local_index %35 %41 %37
-               OpLoopMerge %39 %37 None
-               OpBranch %36
-         %36 = OpLabel
-         %46 = OpUGreaterThanEqual %bool %40 %uint_64
-               OpSelectionMerge %48 None
-               OpBranchConditional %46 %49 %48
-         %49 = OpLabel
-               OpBranch %39
-         %48 = OpLabel
-         %50 = OpAccessChain %_ptr_Workgroup_float %arg_0 %40
-               OpStore %50 %float_0 NonPrivatePointer
-               OpBranch %37
-         %37 = OpLabel
-         %41 = OpIAdd %uint %40 %uint_1
-               OpBranch %38
-         %39 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %45 = OpFunctionCall %void %subgroupMatrixStore_dc92cf
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %52 = OpLabel
-         %53 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %54 = OpFunctionCall %void %compute_main_inner %53
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.wgsl
deleted file mode 100644
index ab0b32d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dc92cf.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<f32, 64>;
-
-fn subgroupMatrixStore_dc92cf() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dc92cf();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl
deleted file mode 100644
index 7563eb0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-struct SB_RW {
-  arg_0: array<u32, 64>,
-};
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-// fn subgroupMatrixStore(ptr<storage, array<u32, 64>, read_write>, u32, subgroup_matrix<result, u32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_dce0b7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 8412f96..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_dce0b7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 7fe3570..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,37 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_dce0b7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 64>, u32, subgroup_matrix_result<u32, 8, 8>, bool, u32)'
-
-2 candidate functions:
- • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
- • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
-      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
-
-  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
-  ^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.spvasm
deleted file mode 100644
index 2458522..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.spvasm
+++ /dev/null
@@ -1,70 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 35
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main"
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
-               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
-               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
-               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
-               OpName %subgroupMatrixStore_dce0b7 "subgroupMatrixStore_dce0b7"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main "compute_main"
-               OpDecorate %_arr_uint_uint_64 ArrayStride 4
-               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
-               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
-               OpDecorate %sb_rw_block_tint_explicit_layout Block
-               OpDecorate %1 DescriptorSet 0
-               OpDecorate %1 Binding 0
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_uint_uint_64 = OpTypeArray %uint %uint_64
-%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_64
-%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
-%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
-          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
-       %void = OpTypeVoid
-         %10 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
-     %uint_0 = OpConstant %uint 0
-         %15 = OpConstantComposite %16 %uint_0
-%_ptr_Function_16 = OpTypePointer Function %16
-%_ptr_StorageBuffer__arr_uint_uint_64 = OpTypePointer StorageBuffer %_arr_uint_uint_64
-%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
-%subgroupMatrixStore_dce0b7 = OpFunction %void None %10
-         %11 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_16 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %15
-               OpStore %arg_4 %uint_1
-         %24 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_64 %1 %uint_0 %uint_0
-         %26 = OpLoad %uint %arg_1 None
-         %27 = OpLoad %16 %arg_2 None
-         %28 = OpLoad %uint %arg_4 None
-         %29 = OpAccessChain %_ptr_StorageBuffer_uint %24 %26
-               OpCooperativeMatrixStoreKHR %29 %27 %uint_1 %28 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %10
-         %33 = OpLabel
-         %34 = OpFunctionCall %void %subgroupMatrixStore_dce0b7
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.wgsl
deleted file mode 100644
index 2ec9746..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/dce0b7.wgsl.expected.wgsl
+++ /dev/null
@@ -1,20 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-struct SB_RW {
-  arg_0 : array<u32, 64>,
-}
-
-@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
-
-fn subgroupMatrixStore_dce0b7() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<u32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_dce0b7();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl
new file mode 100644
index 0000000..27349eb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<f32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f32, 1024>, read_write>, u32, subgroup_matrix<left, f32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_eac52e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7be0a60
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_eac52e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..eb40346
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_eac52e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<f32, 1024>, u32, subgroup_matrix_left<f32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.msl
new file mode 100644
index 0000000..45b2556
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<float, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_eac52e(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_float8x8 arg_2 = simdgroup_float8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_eac52e(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.spvasm
new file mode 100644
index 0000000..46ad2b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_eac52e "subgroupMatrixStore_eac52e"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_float_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+      %float = OpTypeFloat 32
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_float_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %17 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+    %float_0 = OpConstant %float 0
+         %16 = OpConstantComposite %17 %float_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%subgroupMatrixStore_eac52e = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0 %uint_0
+         %27 = OpLoad %uint %arg_1 None
+         %28 = OpLoad %17 %arg_2 None
+         %29 = OpLoad %uint %arg_4 None
+         %30 = OpAccessChain %_ptr_StorageBuffer_float %25 %27
+               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %subgroupMatrixStore_eac52e
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.wgsl
new file mode 100644
index 0000000..bf42fac
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<f32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_eac52e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_eac52e();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl
deleted file mode 100644
index a91e438..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// flags: --hlsl-shader-model 62
-
-
-enable chromium_experimental_subgroup_matrix;
-
-enable f16;
-var<workgroup> arg_0: array<f16, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<f16, 64>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_ee1195() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.dxc.hlsl
deleted file mode 100644
index 652f3c5..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_ee1195() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 73630f0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,27 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_ee1195() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.msl
deleted file mode 100644
index dc4220d..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.msl
+++ /dev/null
@@ -1,54 +0,0 @@
-#include <metal_stdlib>
-using namespace metal;
-
-template<typename T, size_t N>
-struct tint_array {
-  const constant T& operator[](size_t i) const constant { return elements[i]; }
-  device T& operator[](size_t i) device { return elements[i]; }
-  const device T& operator[](size_t i) const device { return elements[i]; }
-  thread T& operator[](size_t i) thread { return elements[i]; }
-  const thread T& operator[](size_t i) const thread { return elements[i]; }
-  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
-  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
-  T elements[N];
-};
-
-struct tint_module_vars_struct {
-  threadgroup tint_array<half, 64>* arg_0;
-};
-
-struct tint_symbol_1 {
-  tint_array<half, 64> tint_symbol;
-};
-
-void subgroupMatrixStore_ee1195(tint_module_vars_struct tint_module_vars) {
-  uint arg_1 = 1u;
-  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
-  uint arg_4 = 1u;
-  simdgroup_store(arg_2, (&(*tint_module_vars.arg_0)[arg_1]), ulong(arg_4), ulong2(0ul), true);
-}
-
-void compute_main_inner(uint tint_local_index, tint_module_vars_struct tint_module_vars) {
-  {
-    uint v = 0u;
-    v = tint_local_index;
-    while(true) {
-      uint const v_1 = v;
-      if ((v_1 >= 64u)) {
-        break;
-      }
-      (*tint_module_vars.arg_0)[v_1] = 0.0h;
-      {
-        v = (v_1 + 1u);
-      }
-      continue;
-    }
-  }
-  threadgroup_barrier(mem_flags::mem_threadgroup);
-  subgroupMatrixStore_ee1195(tint_module_vars);
-}
-
-kernel void compute_main(uint tint_local_index [[thread_index_in_threadgroup]], threadgroup tint_symbol_1* v_2 [[threadgroup(0)]]) {
-  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.arg_0=(&(*v_2).tint_symbol)};
-  compute_main_inner(tint_local_index, tint_module_vars);
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm
deleted file mode 100644
index 4623fcc..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.spvasm
+++ /dev/null
@@ -1,100 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 55
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability Float16
-               OpCapability UniformAndStorageBuffer16BitAccess
-               OpCapability StorageBuffer16BitAccess
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_ee1195 "subgroupMatrixStore_ee1195"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-       %half = OpTypeFloat 16
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_half_uint_64 = OpTypeArray %half %uint_64
-%_ptr_Workgroup__arr_half_uint_64 = OpTypePointer Workgroup %_arr_half_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_half_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_0 = OpConstant %uint 0
-         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
-%half_0x0p_0 = OpConstant %half 0x0p+0
-         %16 = OpConstantComposite %17 %half_0x0p_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_half = OpTypePointer Workgroup %half
-         %33 = OpTypeFunction %void %uint
-     %uint_2 = OpConstant %uint 2
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_ee1195 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %17 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_Workgroup_half %arg_0 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %33
-%tint_local_index = OpFunctionParameter %uint
-         %34 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-         %40 = OpPhi %uint %tint_local_index %35 %41 %37
-               OpLoopMerge %39 %37 None
-               OpBranch %36
-         %36 = OpLabel
-         %46 = OpUGreaterThanEqual %bool %40 %uint_64
-               OpSelectionMerge %48 None
-               OpBranchConditional %46 %49 %48
-         %49 = OpLabel
-               OpBranch %39
-         %48 = OpLabel
-         %50 = OpAccessChain %_ptr_Workgroup_half %arg_0 %40
-               OpStore %50 %half_0x0p_0 NonPrivatePointer
-               OpBranch %37
-         %37 = OpLabel
-         %41 = OpIAdd %uint %40 %uint_1
-               OpBranch %38
-         %39 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %45 = OpFunctionCall %void %subgroupMatrixStore_ee1195
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %52 = OpLabel
-         %53 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %54 = OpFunctionCall %void %compute_main_inner %53
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.wgsl
deleted file mode 100644
index 4aa7a88..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/ee1195.wgsl.expected.wgsl
+++ /dev/null
@@ -1,17 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-enable f16;
-
-var<workgroup> arg_0 : array<f16, 64>;
-
-fn subgroupMatrixStore_ee1195() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_ee1195();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl
deleted file mode 100644
index 1b082e8..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2025 The Dawn & Tint Authors
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// 1. Redistributions of source code must retain the above copyright notice, this
-//    list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright notice,
-//    this list of conditions and the following disclaimer in the documentation
-//    and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the copyright holder nor the names of its
-//    contributors may be used to endorse or promote products derived from
-//    this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-////////////////////////////////////////////////////////////////////////////////
-// File generated by 'tools/src/cmd/gen' using the template:
-//   test/tint/builtins/gen/gen.wgsl.tmpl
-//
-// To regenerate run: './tools/run gen'
-//
-//                       Do not modify this file directly
-////////////////////////////////////////////////////////////////////////////////
-
-
-// [hlsl-dxc] flags: --hlsl-shader-model 60
-
-
-enable chromium_experimental_subgroup_matrix;
-var<workgroup> arg_0: array<i32, 64>;
-
-// fn subgroupMatrixStore(ptr<workgroup, array<i32, 64>, read_write>, u32, subgroup_matrix<result, i32, 8, 8>, @const bool, u32)
-fn subgroupMatrixStore_f04d67() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
-}
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.dxc.hlsl
deleted file mode 100644
index f1994b3..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.dxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: FAILED
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_f04d67() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.fxc.hlsl
deleted file mode 100644
index 4ec7cb2..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.fxc.hlsl
+++ /dev/null
@@ -1,26 +0,0 @@
-SKIP: INVALID
-
-
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_f04d67() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
-
-Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
-enable chromium_experimental_subgroup_matrix;
-       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.glsl
deleted file mode 100644
index cc19bf0..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.glsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the GLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.ir.dxc.hlsl
deleted file mode 100644
index dda740a..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.ir.dxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: FAILED
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.ir.fxc.hlsl
deleted file mode 100644
index 4709805..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.ir.fxc.hlsl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: subgroup matrices are not supported by the HLSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.msl
deleted file mode 100644
index 5dba48c..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.msl
+++ /dev/null
@@ -1,5 +0,0 @@
-SKIP: INVALID
-
-error: non-float subgroup matrices are not supported by the MSL backend
-
-tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm
deleted file mode 100644
index 0136b94..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.spvasm
+++ /dev/null
@@ -1,96 +0,0 @@
-; SPIR-V
-; Version: 1.3
-; Generator: Google Tint Compiler; 1
-; Bound: 54
-; Schema: 0
-               OpCapability Shader
-               OpCapability VulkanMemoryModel
-               OpCapability VulkanMemoryModelDeviceScope
-               OpCapability CooperativeMatrixKHR
-               OpExtension "SPV_KHR_vulkan_memory_model"
-               OpExtension "SPV_KHR_cooperative_matrix"
-               OpMemoryModel Logical Vulkan
-               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
-               OpExecutionMode %compute_main LocalSize 1 1 1
-               OpName %arg_0 "arg_0"
-               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
-               OpName %subgroupMatrixStore_f04d67 "subgroupMatrixStore_f04d67"
-               OpName %arg_1 "arg_1"
-               OpName %arg_2 "arg_2"
-               OpName %arg_4 "arg_4"
-               OpName %compute_main_inner "compute_main_inner"
-               OpName %tint_local_index "tint_local_index"
-               OpName %compute_main "compute_main"
-               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
-        %int = OpTypeInt 32 1
-       %uint = OpTypeInt 32 0
-    %uint_64 = OpConstant %uint 64
-%_arr_int_uint_64 = OpTypeArray %int %uint_64
-%_ptr_Workgroup__arr_int_uint_64 = OpTypePointer Workgroup %_arr_int_uint_64
-      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_64 Workgroup
-%_ptr_Input_uint = OpTypePointer Input %uint
-%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
-       %void = OpTypeVoid
-         %11 = OpTypeFunction %void
-%_ptr_Function_uint = OpTypePointer Function %uint
-     %uint_1 = OpConstant %uint 1
-     %uint_3 = OpConstant %uint 3
-     %uint_8 = OpConstant %uint 8
-     %uint_2 = OpConstant %uint 2
-         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
-      %int_0 = OpConstant %int 0
-         %16 = OpConstantComposite %17 %int_0
-%_ptr_Function_17 = OpTypePointer Function %17
-%_ptr_Workgroup_int = OpTypePointer Workgroup %int
-         %33 = OpTypeFunction %void %uint
- %uint_24840 = OpConstant %uint 24840
-       %bool = OpTypeBool
-%subgroupMatrixStore_f04d67 = OpFunction %void None %11
-         %12 = OpLabel
-      %arg_1 = OpVariable %_ptr_Function_uint Function
-      %arg_2 = OpVariable %_ptr_Function_17 Function
-      %arg_4 = OpVariable %_ptr_Function_uint Function
-               OpStore %arg_1 %uint_1
-               OpStore %arg_2 %16
-               OpStore %arg_4 %uint_1
-         %25 = OpLoad %uint %arg_1 None
-         %26 = OpLoad %17 %arg_2 None
-         %27 = OpLoad %uint %arg_4 None
-         %28 = OpAccessChain %_ptr_Workgroup_int %arg_0 %25
-               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
-               OpReturn
-               OpFunctionEnd
-%compute_main_inner = OpFunction %void None %33
-%tint_local_index = OpFunctionParameter %uint
-         %34 = OpLabel
-               OpBranch %35
-         %35 = OpLabel
-               OpBranch %38
-         %38 = OpLabel
-         %40 = OpPhi %uint %tint_local_index %35 %41 %37
-               OpLoopMerge %39 %37 None
-               OpBranch %36
-         %36 = OpLabel
-         %45 = OpUGreaterThanEqual %bool %40 %uint_64
-               OpSelectionMerge %47 None
-               OpBranchConditional %45 %48 %47
-         %48 = OpLabel
-               OpBranch %39
-         %47 = OpLabel
-         %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %40
-               OpStore %49 %int_0 NonPrivatePointer
-               OpBranch %37
-         %37 = OpLabel
-         %41 = OpIAdd %uint %40 %uint_1
-               OpBranch %38
-         %39 = OpLabel
-               OpControlBarrier %uint_2 %uint_2 %uint_24840
-         %44 = OpFunctionCall %void %subgroupMatrixStore_f04d67
-               OpReturn
-               OpFunctionEnd
-%compute_main = OpFunction %void None %11
-         %51 = OpLabel
-         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
-         %53 = OpFunctionCall %void %compute_main_inner %52
-               OpReturn
-               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.wgsl
deleted file mode 100644
index c9d024e..0000000
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f04d67.wgsl.expected.wgsl
+++ /dev/null
@@ -1,16 +0,0 @@
-enable chromium_experimental_subgroup_matrix;
-
-var<workgroup> arg_0 : array<i32, 64>;
-
-fn subgroupMatrixStore_f04d67() {
-  var arg_1 = 1u;
-  var arg_2 = subgroup_matrix_result<i32, 8, 8>();
-  const arg_3 = true;
-  var arg_4 = 1u;
-  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
-}
-
-@compute @workgroup_size(1)
-fn compute_main() {
-  subgroupMatrixStore_f04d67();
-}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl
new file mode 100644
index 0000000..1276dc4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl
@@ -0,0 +1,58 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+struct SB_RW {
+  arg_0: array<u32, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<u32, 1024>, read_write>, u32, subgroup_matrix<left, u32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_f71f4f() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..1d0b74c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f71f4f() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..61969eb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,37 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f71f4f() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u32, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/3fcc0f.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.msl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/184580.wgsl.expected.msl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.spvasm
new file mode 100644
index 0000000..621e8001
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.spvasm
@@ -0,0 +1,69 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 34
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_f71f4f "subgroupMatrixStore_f71f4f"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_uint_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %10 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %16 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+         %15 = OpConstantComposite %16 %uint_0
+%_ptr_Function_16 = OpTypePointer Function %16
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%subgroupMatrixStore_f71f4f = OpFunction %void None %10
+         %11 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_16 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %15
+               OpStore %arg_4 %uint_1
+         %23 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0 %uint_0
+         %25 = OpLoad %uint %arg_1 None
+         %26 = OpLoad %16 %arg_2 None
+         %27 = OpLoad %uint %arg_4 None
+         %28 = OpAccessChain %_ptr_StorageBuffer_uint %23 %25
+               OpCooperativeMatrixStoreKHR %28 %26 %uint_1 %27 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %10
+         %32 = OpLabel
+         %33 = OpFunctionCall %void %subgroupMatrixStore_f71f4f
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.wgsl
new file mode 100644
index 0000000..b62dfa4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f71f4f() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f71f4f();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl
new file mode 100644
index 0000000..b0f6bde
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+struct SB_RW {
+  arg_0: array<f16, 1024>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, array<f16, 1024>, read_write>, u32, subgroup_matrix<left, f16, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_fb7663() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c819920
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
@@ -0,0 +1,38 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_fb7663() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..73864ef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
@@ -0,0 +1,38 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_fb7663() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl:55:3 error: no matching call to 'subgroupMatrixStore(array<f16, 1024>, u32, subgroup_matrix_left<f16, 8, 8>, bool, u32)'
+
+2 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<S>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<S, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/0522d1.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.msl
new file mode 100644
index 0000000..928c7df
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.msl
@@ -0,0 +1,34 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+  const constant T& operator[](size_t i) const constant { return elements[i]; }
+  device T& operator[](size_t i) device { return elements[i]; }
+  const device T& operator[](size_t i) const device { return elements[i]; }
+  thread T& operator[](size_t i) thread { return elements[i]; }
+  const thread T& operator[](size_t i) const thread { return elements[i]; }
+  threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+  const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+  T elements[N];
+};
+
+struct SB_RW {
+  /* 0x0000 */ tint_array<half, 1024> arg_0;
+};
+
+struct tint_module_vars_struct {
+  device SB_RW* sb_rw;
+};
+
+void subgroupMatrixStore_fb7663(tint_module_vars_struct tint_module_vars) {
+  uint arg_1 = 1u;
+  simdgroup_half8x8 arg_2 = simdgroup_half8x8();
+  uint arg_4 = 1u;
+  simdgroup_store(arg_2, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_4), ulong2(0ul), true);
+}
+
+kernel void compute_main(device SB_RW* sb_rw [[buffer(0)]]) {
+  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.sb_rw=sb_rw};
+  subgroupMatrixStore_fb7663(tint_module_vars);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.spvasm
new file mode 100644
index 0000000..73b0d90
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 36
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability Float16
+               OpCapability UniformAndStorageBuffer16BitAccess
+               OpCapability StorageBuffer16BitAccess
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main"
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpMemberName %SB_RW_tint_explicit_layout 0 "arg_0"
+               OpName %SB_RW_tint_explicit_layout "SB_RW_tint_explicit_layout"
+               OpMemberName %sb_rw_block_tint_explicit_layout 0 "inner"
+               OpName %sb_rw_block_tint_explicit_layout "sb_rw_block_tint_explicit_layout"
+               OpName %subgroupMatrixStore_fb7663 "subgroupMatrixStore_fb7663"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main "compute_main"
+               OpDecorate %_arr_half_uint_1024 ArrayStride 2
+               OpMemberDecorate %SB_RW_tint_explicit_layout 0 Offset 0
+               OpMemberDecorate %sb_rw_block_tint_explicit_layout 0 Offset 0
+               OpDecorate %sb_rw_block_tint_explicit_layout Block
+               OpDecorate %1 DescriptorSet 0
+               OpDecorate %1 Binding 0
+       %half = OpTypeFloat 16
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%SB_RW_tint_explicit_layout = OpTypeStruct %_arr_half_uint_1024
+%sb_rw_block_tint_explicit_layout = OpTypeStruct %SB_RW_tint_explicit_layout
+%_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout = OpTypePointer StorageBuffer %sb_rw_block_tint_explicit_layout
+          %1 = OpVariable %_ptr_StorageBuffer_sb_rw_block_tint_explicit_layout StorageBuffer
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+     %uint_0 = OpConstant %uint 0
+         %17 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+%half_0x0p_0 = OpConstant %half 0x0p+0
+         %16 = OpConstantComposite %17 %half_0x0p_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%subgroupMatrixStore_fb7663 = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %25 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0 %uint_0
+         %27 = OpLoad %uint %arg_1 None
+         %28 = OpLoad %17 %arg_2 None
+         %29 = OpLoad %uint %arg_4 None
+         %30 = OpAccessChain %_ptr_StorageBuffer_half %25 %27
+               OpCooperativeMatrixStoreKHR %30 %28 %uint_1 %29 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %34 = OpLabel
+         %35 = OpFunctionCall %void %subgroupMatrixStore_fb7663
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.wgsl
new file mode 100644
index 0000000..1ec8d6a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.wgsl
@@ -0,0 +1,21 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+struct SB_RW {
+  arg_0 : array<f16, 1024>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_fb7663() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<f16, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_fb7663();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl
new file mode 100644
index 0000000..20279f2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl
@@ -0,0 +1,55 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+//    list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+//    this list of conditions and the following disclaimer in the documentation
+//    and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+//    contributors may be used to endorse or promote products derived from
+//    this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+//   test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+//                       Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+var<workgroup> arg_0: array<i32, 1024>;
+
+// fn subgroupMatrixStore(ptr<workgroup, array<i32, 1024>, read_write>, u32, subgroup_matrix<right, i32, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_feca1e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..1e67a5f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_feca1e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..5d01634
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: INVALID
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_feca1e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl:41:8 error: HLSL backend does not support extension 'chromium_experimental_subgroup_matrix'
+enable chromium_experimental_subgroup_matrix;
+       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.glsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.glsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.glsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.dxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
similarity index 100%
copy from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.ir.fxc.hlsl
copy to test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.msl
similarity index 100%
rename from test/tint/builtins/gen/var/subgroupMatrixStore/5915fe.wgsl.expected.msl
rename to test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.msl
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.spvasm
new file mode 100644
index 0000000..e60794e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.spvasm
@@ -0,0 +1,96 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 54
+; Schema: 0
+               OpCapability Shader
+               OpCapability VulkanMemoryModel
+               OpCapability VulkanMemoryModelDeviceScope
+               OpCapability CooperativeMatrixKHR
+               OpExtension "SPV_KHR_vulkan_memory_model"
+               OpExtension "SPV_KHR_cooperative_matrix"
+               OpMemoryModel Logical Vulkan
+               OpEntryPoint GLCompute %compute_main "compute_main" %compute_main_local_invocation_index_Input
+               OpExecutionMode %compute_main LocalSize 1 1 1
+               OpName %arg_0 "arg_0"
+               OpName %compute_main_local_invocation_index_Input "compute_main_local_invocation_index_Input"
+               OpName %subgroupMatrixStore_feca1e "subgroupMatrixStore_feca1e"
+               OpName %arg_1 "arg_1"
+               OpName %arg_2 "arg_2"
+               OpName %arg_4 "arg_4"
+               OpName %compute_main_inner "compute_main_inner"
+               OpName %tint_local_index "tint_local_index"
+               OpName %compute_main "compute_main"
+               OpDecorate %compute_main_local_invocation_index_Input BuiltIn LocalInvocationIndex
+        %int = OpTypeInt 32 1
+       %uint = OpTypeInt 32 0
+  %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%_ptr_Workgroup__arr_int_uint_1024 = OpTypePointer Workgroup %_arr_int_uint_1024
+      %arg_0 = OpVariable %_ptr_Workgroup__arr_int_uint_1024 Workgroup
+%_ptr_Input_uint = OpTypePointer Input %uint
+%compute_main_local_invocation_index_Input = OpVariable %_ptr_Input_uint Input
+       %void = OpTypeVoid
+         %11 = OpTypeFunction %void
+%_ptr_Function_uint = OpTypePointer Function %uint
+     %uint_1 = OpConstant %uint 1
+     %uint_3 = OpConstant %uint 3
+     %uint_8 = OpConstant %uint 8
+         %17 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+      %int_0 = OpConstant %int 0
+         %16 = OpConstantComposite %17 %int_0
+%_ptr_Function_17 = OpTypePointer Function %17
+%_ptr_Workgroup_int = OpTypePointer Workgroup %int
+         %32 = OpTypeFunction %void %uint
+     %uint_2 = OpConstant %uint 2
+ %uint_24840 = OpConstant %uint 24840
+       %bool = OpTypeBool
+%subgroupMatrixStore_feca1e = OpFunction %void None %11
+         %12 = OpLabel
+      %arg_1 = OpVariable %_ptr_Function_uint Function
+      %arg_2 = OpVariable %_ptr_Function_17 Function
+      %arg_4 = OpVariable %_ptr_Function_uint Function
+               OpStore %arg_1 %uint_1
+               OpStore %arg_2 %16
+               OpStore %arg_4 %uint_1
+         %24 = OpLoad %uint %arg_1 None
+         %25 = OpLoad %17 %arg_2 None
+         %26 = OpLoad %uint %arg_4 None
+         %27 = OpAccessChain %_ptr_Workgroup_int %arg_0 %24
+               OpCooperativeMatrixStoreKHR %27 %25 %uint_1 %26 NonPrivatePointer
+               OpReturn
+               OpFunctionEnd
+%compute_main_inner = OpFunction %void None %32
+%tint_local_index = OpFunctionParameter %uint
+         %33 = OpLabel
+               OpBranch %34
+         %34 = OpLabel
+               OpBranch %37
+         %37 = OpLabel
+         %39 = OpPhi %uint %tint_local_index %34 %40 %36
+               OpLoopMerge %38 %36 None
+               OpBranch %35
+         %35 = OpLabel
+         %45 = OpUGreaterThanEqual %bool %39 %uint_1024
+               OpSelectionMerge %47 None
+               OpBranchConditional %45 %48 %47
+         %48 = OpLabel
+               OpBranch %38
+         %47 = OpLabel
+         %49 = OpAccessChain %_ptr_Workgroup_int %arg_0 %39
+               OpStore %49 %int_0 NonPrivatePointer
+               OpBranch %36
+         %36 = OpLabel
+         %40 = OpIAdd %uint %39 %uint_1
+               OpBranch %37
+         %38 = OpLabel
+               OpControlBarrier %uint_2 %uint_2 %uint_24840
+         %44 = OpFunctionCall %void %subgroupMatrixStore_feca1e
+               OpReturn
+               OpFunctionEnd
+%compute_main = OpFunction %void None %11
+         %51 = OpLabel
+         %52 = OpLoad %uint %compute_main_local_invocation_index_Input None
+         %53 = OpFunctionCall %void %compute_main_inner %52
+               OpReturn
+               OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.wgsl
new file mode 100644
index 0000000..5676b59
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.wgsl
@@ -0,0 +1,16 @@
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_feca1e() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i32, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 1u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_feca1e();
+}
diff --git a/tools/src/tint/intrinsic/gen/permutate.go b/tools/src/tint/intrinsic/gen/permutate.go
index 208d7bc..14a3195 100644
--- a/tools/src/tint/intrinsic/gen/permutate.go
+++ b/tools/src/tint/intrinsic/gen/permutate.go
@@ -225,7 +225,7 @@
 			// Restrict the permutations for subgroup matrix builtins to avoid combinatorial explosion.
 			if strings.HasPrefix(overload.Decl.Name, "subgroupMatrix") {
 				if t.Name == "AC" {
-					permutations = []int{64}
+					permutations = []int{1024}
 				} else {
 					permutations = []int{8}
 				}