[wgsl] Support `subgroupMatrixLoad` and `subgroupMatrixStore` with `i8` and `u8`

This patch adds the overloads of `subgroupMatrixLoad` and
`subgroupMatrixStore` with `i8` and `u8` as the element types of the
subgroup matrices.

This patch also fixes the template of the subgroup matrix tests about
`i8` and `u8` by replacing all `array<i8>` with `array<i32>` and
replacing `array<u8>` with `array<u32>`.

Bug: 348702031, 403609083
Test: tint_unittests
Change-Id: Id41ddb92b294ab2ce80fd74a533031883868cc45
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/245454
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index ee52a78..e6f29bd 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -788,8 +788,16 @@
 
 @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<storage, runtime_array<S>, readable>, u32, @const bool, u32) -> T
 @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num, AC: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<workgroup_or_storage, array<S, AC>, readable>, u32, @const bool, u32) -> T
+@stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<storage, runtime_array<i32>, readable>, u32, @const bool, u32) -> T
+@stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<storage, runtime_array<u32>, readable>, u32, @const bool, u32) -> T
+@stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num, AC: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<workgroup_or_storage, array<i32, AC>, readable>, u32, @const bool, u32) -> T
+@stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num, AC: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<workgroup_or_storage, array<u32, AC>, readable>, u32, @const bool, u32) -> T
 @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num) fn subgroupMatrixStore(ptr<storage, runtime_array<S>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32)
 @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num, AC: num) fn subgroupMatrixStore(ptr<workgroup_or_storage, array<S, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num) fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num) fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num, AC: num) fn subgroupMatrixStore(ptr<workgroup_or_storage, array<i32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num, AC: num) fn subgroupMatrixStore(ptr<workgroup_or_storage, array<u32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32)
 @must_use @stage("compute") implicit(T: subgroup_matrix_elements, C: num, R: num, K: num) fn subgroupMatrixMultiply<TR: subgroup_matrix_elements>(
   subgroup_matrix<subgroup_matrix_kind_left, T, K, R>,
   subgroup_matrix<subgroup_matrix_kind_right, T, C, K>)
diff --git a/src/tint/lang/core/intrinsic/data.cc b/src/tint/lang/core/intrinsic/data.cc
index aa30cd7..a529a96 100644
--- a/src/tint/lang/core/intrinsic/data.cc
+++ b/src/tint/lang/core/intrinsic/data.cc
@@ -1730,352 +1730,396 @@
   /* [7] */ MatcherIndex(27),
   /* [8] */ MatcherIndex(17),
   /* [9] */ MatcherIndex(30),
-  /* [10] */ MatcherIndex(1),
-  /* [11] */ MatcherIndex(4),
-  /* [12] */ MatcherIndex(15),
-  /* [13] */ MatcherIndex(11),
+  /* [10] */ MatcherIndex(9),
+  /* [11] */ MatcherIndex(5),
+  /* [12] */ MatcherIndex(14),
+  /* [13] */ MatcherIndex(10),
   /* [14] */ MatcherIndex(27),
-  /* [15] */ MatcherIndex(18),
-  /* [16] */ MatcherIndex(29),
-  /* [17] */ MatcherIndex(0),
-  /* [18] */ MatcherIndex(1),
-  /* [19] */ MatcherIndex(27),
-  /* [20] */ MatcherIndex(1),
-  /* [21] */ MatcherIndex(28),
-  /* [22] */ MatcherIndex(0),
-  /* [23] */ MatcherIndex(13),
-  /* [24] */ MatcherIndex(11),
-  /* [25] */ MatcherIndex(57),
-  /* [26] */ MatcherIndex(1),
-  /* [27] */ MatcherIndex(2),
-  /* [28] */ MatcherIndex(3),
-  /* [29] */ MatcherIndex(4),
-  /* [30] */ MatcherIndex(27),
-  /* [31] */ MatcherIndex(18),
-  /* [32] */ MatcherIndex(29),
-  /* [33] */ MatcherIndex(2),
-  /* [34] */ MatcherIndex(14),
-  /* [35] */ MatcherIndex(10),
-  /* [36] */ MatcherIndex(27),
-  /* [37] */ MatcherIndex(18),
-  /* [38] */ MatcherIndex(29),
-  /* [39] */ MatcherIndex(1),
+  /* [15] */ MatcherIndex(17),
+  /* [16] */ MatcherIndex(30),
+  /* [17] */ MatcherIndex(10),
+  /* [18] */ MatcherIndex(5),
+  /* [19] */ MatcherIndex(14),
+  /* [20] */ MatcherIndex(11),
+  /* [21] */ MatcherIndex(27),
+  /* [22] */ MatcherIndex(17),
+  /* [23] */ MatcherIndex(30),
+  /* [24] */ MatcherIndex(1),
+  /* [25] */ MatcherIndex(4),
+  /* [26] */ MatcherIndex(15),
+  /* [27] */ MatcherIndex(11),
+  /* [28] */ MatcherIndex(27),
+  /* [29] */ MatcherIndex(17),
+  /* [30] */ MatcherIndex(30),
+  /* [31] */ MatcherIndex(9),
+  /* [32] */ MatcherIndex(4),
+  /* [33] */ MatcherIndex(15),
+  /* [34] */ MatcherIndex(9),
+  /* [35] */ MatcherIndex(27),
+  /* [36] */ MatcherIndex(17),
+  /* [37] */ MatcherIndex(30),
+  /* [38] */ MatcherIndex(10),
+  /* [39] */ MatcherIndex(4),
   /* [40] */ MatcherIndex(15),
-  /* [41] */ MatcherIndex(9),
-  /* [42] */ MatcherIndex(57),
-  /* [43] */ MatcherIndex(0),
-  /* [44] */ MatcherIndex(1),
-  /* [45] */ MatcherIndex(2),
-  /* [46] */ MatcherIndex(3),
-  /* [47] */ MatcherIndex(57),
-  /* [48] */ MatcherIndex(8),
-  /* [49] */ MatcherIndex(0),
-  /* [50] */ MatcherIndex(2),
-  /* [51] */ MatcherIndex(3),
-  /* [52] */ MatcherIndex(57),
-  /* [53] */ MatcherIndex(6),
+  /* [41] */ MatcherIndex(10),
+  /* [42] */ MatcherIndex(27),
+  /* [43] */ MatcherIndex(18),
+  /* [44] */ MatcherIndex(29),
+  /* [45] */ MatcherIndex(0),
+  /* [46] */ MatcherIndex(1),
+  /* [47] */ MatcherIndex(27),
+  /* [48] */ MatcherIndex(1),
+  /* [49] */ MatcherIndex(28),
+  /* [50] */ MatcherIndex(0),
+  /* [51] */ MatcherIndex(13),
+  /* [52] */ MatcherIndex(11),
+  /* [53] */ MatcherIndex(57),
   /* [54] */ MatcherIndex(1),
-  /* [55] */ MatcherIndex(4),
+  /* [55] */ MatcherIndex(2),
   /* [56] */ MatcherIndex(3),
-  /* [57] */ MatcherIndex(57),
-  /* [58] */ MatcherIndex(7),
-  /* [59] */ MatcherIndex(1),
-  /* [60] */ MatcherIndex(2),
-  /* [61] */ MatcherIndex(4),
-  /* [62] */ MatcherIndex(57),
-  /* [63] */ MatcherIndex(8),
-  /* [64] */ MatcherIndex(1),
-  /* [65] */ MatcherIndex(2),
-  /* [66] */ MatcherIndex(3),
-  /* [67] */ MatcherIndex(57),
-  /* [68] */ MatcherIndex(6),
-  /* [69] */ MatcherIndex(0),
-  /* [70] */ MatcherIndex(4),
-  /* [71] */ MatcherIndex(3),
-  /* [72] */ MatcherIndex(57),
-  /* [73] */ MatcherIndex(7),
-  /* [74] */ MatcherIndex(0),
-  /* [75] */ MatcherIndex(2),
-  /* [76] */ MatcherIndex(4),
-  /* [77] */ MatcherIndex(57),
-  /* [78] */ MatcherIndex(6),
-  /* [79] */ MatcherIndex(0),
-  /* [80] */ MatcherIndex(1),
-  /* [81] */ MatcherIndex(2),
-  /* [82] */ MatcherIndex(57),
-  /* [83] */ MatcherIndex(7),
-  /* [84] */ MatcherIndex(0),
-  /* [85] */ MatcherIndex(1),
-  /* [86] */ MatcherIndex(2),
-  /* [87] */ MatcherIndex(57),
-  /* [88] */ MatcherIndex(8),
-  /* [89] */ MatcherIndex(0),
-  /* [90] */ MatcherIndex(1),
-  /* [91] */ MatcherIndex(2),
-  /* [92] */ MatcherIndex(26),
-  /* [93] */ MatcherIndex(0),
-  /* [94] */ MatcherIndex(0),
-  /* [95] */ MatcherIndex(1),
-  /* [96] */ MatcherIndex(26),
-  /* [97] */ MatcherIndex(1),
-  /* [98] */ MatcherIndex(0),
-  /* [99] */ MatcherIndex(2),
-  /* [100] */ MatcherIndex(26),
-  /* [101] */ MatcherIndex(0),
-  /* [102] */ MatcherIndex(1),
-  /* [103] */ MatcherIndex(2),
-  /* [104] */ MatcherIndex(26),
-  /* [105] */ MatcherIndex(1),
-  /* [106] */ MatcherIndex(2),
-  /* [107] */ MatcherIndex(0),
-  /* [108] */ MatcherIndex(26),
-  /* [109] */ MatcherIndex(2),
-  /* [110] */ MatcherIndex(3),
-  /* [111] */ MatcherIndex(0),
-  /* [112] */ MatcherIndex(26),
-  /* [113] */ MatcherIndex(1),
-  /* [114] */ MatcherIndex(3),
-  /* [115] */ MatcherIndex(0),
-  /* [116] */ MatcherIndex(26),
-  /* [117] */ MatcherIndex(2),
-  /* [118] */ MatcherIndex(1),
+  /* [57] */ MatcherIndex(4),
+  /* [58] */ MatcherIndex(27),
+  /* [59] */ MatcherIndex(18),
+  /* [60] */ MatcherIndex(29),
+  /* [61] */ MatcherIndex(2),
+  /* [62] */ MatcherIndex(14),
+  /* [63] */ MatcherIndex(9),
+  /* [64] */ MatcherIndex(27),
+  /* [65] */ MatcherIndex(18),
+  /* [66] */ MatcherIndex(29),
+  /* [67] */ MatcherIndex(9),
+  /* [68] */ MatcherIndex(14),
+  /* [69] */ MatcherIndex(1),
+  /* [70] */ MatcherIndex(27),
+  /* [71] */ MatcherIndex(18),
+  /* [72] */ MatcherIndex(29),
+  /* [73] */ MatcherIndex(10),
+  /* [74] */ MatcherIndex(14),
+  /* [75] */ MatcherIndex(27),
+  /* [76] */ MatcherIndex(18),
+  /* [77] */ MatcherIndex(29),
+  /* [78] */ MatcherIndex(1),
+  /* [79] */ MatcherIndex(15),
+  /* [80] */ MatcherIndex(0),
+  /* [81] */ MatcherIndex(57),
+  /* [82] */ MatcherIndex(0),
+  /* [83] */ MatcherIndex(1),
+  /* [84] */ MatcherIndex(2),
+  /* [85] */ MatcherIndex(3),
+  /* [86] */ MatcherIndex(27),
+  /* [87] */ MatcherIndex(18),
+  /* [88] */ MatcherIndex(29),
+  /* [89] */ MatcherIndex(9),
+  /* [90] */ MatcherIndex(15),
+  /* [91] */ MatcherIndex(1),
+  /* [92] */ MatcherIndex(27),
+  /* [93] */ MatcherIndex(18),
+  /* [94] */ MatcherIndex(29),
+  /* [95] */ MatcherIndex(10),
+  /* [96] */ MatcherIndex(15),
+  /* [97] */ MatcherIndex(57),
+  /* [98] */ MatcherIndex(8),
+  /* [99] */ MatcherIndex(0),
+  /* [100] */ MatcherIndex(2),
+  /* [101] */ MatcherIndex(3),
+  /* [102] */ MatcherIndex(57),
+  /* [103] */ MatcherIndex(6),
+  /* [104] */ MatcherIndex(1),
+  /* [105] */ MatcherIndex(4),
+  /* [106] */ MatcherIndex(3),
+  /* [107] */ MatcherIndex(57),
+  /* [108] */ MatcherIndex(7),
+  /* [109] */ MatcherIndex(1),
+  /* [110] */ MatcherIndex(2),
+  /* [111] */ MatcherIndex(4),
+  /* [112] */ MatcherIndex(57),
+  /* [113] */ MatcherIndex(8),
+  /* [114] */ MatcherIndex(1),
+  /* [115] */ MatcherIndex(2),
+  /* [116] */ MatcherIndex(3),
+  /* [117] */ MatcherIndex(57),
+  /* [118] */ MatcherIndex(6),
   /* [119] */ MatcherIndex(0),
-  /* [120] */ MatcherIndex(25),
-  /* [121] */ MatcherIndex(0),
-  /* [122] */ MatcherIndex(1),
-  /* [123] */ MatcherIndex(25),
+  /* [120] */ MatcherIndex(4),
+  /* [121] */ MatcherIndex(3),
+  /* [122] */ MatcherIndex(57),
+  /* [123] */ MatcherIndex(7),
   /* [124] */ MatcherIndex(0),
-  /* [125] */ MatcherIndex(6),
-  /* [126] */ MatcherIndex(25),
-  /* [127] */ MatcherIndex(1),
-  /* [128] */ MatcherIndex(0),
-  /* [129] */ MatcherIndex(25),
-  /* [130] */ MatcherIndex(0),
-  /* [131] */ MatcherIndex(11),
-  /* [132] */ MatcherIndex(55),
-  /* [133] */ MatcherIndex(0),
-  /* [134] */ MatcherIndex(1),
-  /* [135] */ MatcherIndex(25),
-  /* [136] */ MatcherIndex(0),
-  /* [137] */ MatcherIndex(2),
-  /* [138] */ MatcherIndex(53),
+  /* [125] */ MatcherIndex(2),
+  /* [126] */ MatcherIndex(4),
+  /* [127] */ MatcherIndex(57),
+  /* [128] */ MatcherIndex(6),
+  /* [129] */ MatcherIndex(0),
+  /* [130] */ MatcherIndex(1),
+  /* [131] */ MatcherIndex(2),
+  /* [132] */ MatcherIndex(57),
+  /* [133] */ MatcherIndex(7),
+  /* [134] */ MatcherIndex(0),
+  /* [135] */ MatcherIndex(1),
+  /* [136] */ MatcherIndex(2),
+  /* [137] */ MatcherIndex(57),
+  /* [138] */ MatcherIndex(8),
   /* [139] */ MatcherIndex(0),
   /* [140] */ MatcherIndex(1),
-  /* [141] */ MatcherIndex(46),
-  /* [142] */ MatcherIndex(0),
-  /* [143] */ MatcherIndex(1),
-  /* [144] */ MatcherIndex(47),
-  /* [145] */ MatcherIndex(0),
-  /* [146] */ MatcherIndex(1),
-  /* [147] */ MatcherIndex(48),
+  /* [141] */ MatcherIndex(2),
+  /* [142] */ MatcherIndex(26),
+  /* [143] */ MatcherIndex(0),
+  /* [144] */ MatcherIndex(0),
+  /* [145] */ MatcherIndex(1),
+  /* [146] */ MatcherIndex(26),
+  /* [147] */ MatcherIndex(1),
   /* [148] */ MatcherIndex(0),
-  /* [149] */ MatcherIndex(1),
-  /* [150] */ MatcherIndex(49),
+  /* [149] */ MatcherIndex(2),
+  /* [150] */ MatcherIndex(26),
   /* [151] */ MatcherIndex(0),
   /* [152] */ MatcherIndex(1),
-  /* [153] */ MatcherIndex(46),
-  /* [154] */ MatcherIndex(9),
-  /* [155] */ MatcherIndex(15),
-  /* [156] */ MatcherIndex(10),
-  /* [157] */ MatcherIndex(47),
-  /* [158] */ MatcherIndex(9),
-  /* [159] */ MatcherIndex(15),
-  /* [160] */ MatcherIndex(0),
-  /* [161] */ MatcherIndex(48),
-  /* [162] */ MatcherIndex(9),
-  /* [163] */ MatcherIndex(15),
-  /* [164] */ MatcherIndex(1),
-  /* [165] */ MatcherIndex(49),
-  /* [166] */ MatcherIndex(9),
-  /* [167] */ MatcherIndex(15),
-  /* [168] */ MatcherIndex(46),
-  /* [169] */ MatcherIndex(10),
-  /* [170] */ MatcherIndex(15),
-  /* [171] */ MatcherIndex(47),
-  /* [172] */ MatcherIndex(10),
-  /* [173] */ MatcherIndex(15),
-  /* [174] */ MatcherIndex(48),
-  /* [175] */ MatcherIndex(10),
-  /* [176] */ MatcherIndex(15),
-  /* [177] */ MatcherIndex(49),
-  /* [178] */ MatcherIndex(10),
-  /* [179] */ MatcherIndex(15),
-  /* [180] */ MatcherIndex(46),
+  /* [153] */ MatcherIndex(2),
+  /* [154] */ MatcherIndex(26),
+  /* [155] */ MatcherIndex(1),
+  /* [156] */ MatcherIndex(2),
+  /* [157] */ MatcherIndex(0),
+  /* [158] */ MatcherIndex(26),
+  /* [159] */ MatcherIndex(2),
+  /* [160] */ MatcherIndex(3),
+  /* [161] */ MatcherIndex(0),
+  /* [162] */ MatcherIndex(26),
+  /* [163] */ MatcherIndex(1),
+  /* [164] */ MatcherIndex(3),
+  /* [165] */ MatcherIndex(0),
+  /* [166] */ MatcherIndex(26),
+  /* [167] */ MatcherIndex(2),
+  /* [168] */ MatcherIndex(1),
+  /* [169] */ MatcherIndex(0),
+  /* [170] */ MatcherIndex(25),
+  /* [171] */ MatcherIndex(0),
+  /* [172] */ MatcherIndex(1),
+  /* [173] */ MatcherIndex(25),
+  /* [174] */ MatcherIndex(0),
+  /* [175] */ MatcherIndex(6),
+  /* [176] */ MatcherIndex(25),
+  /* [177] */ MatcherIndex(1),
+  /* [178] */ MatcherIndex(0),
+  /* [179] */ MatcherIndex(25),
+  /* [180] */ MatcherIndex(0),
   /* [181] */ MatcherIndex(11),
-  /* [182] */ MatcherIndex(15),
-  /* [183] */ MatcherIndex(47),
-  /* [184] */ MatcherIndex(11),
-  /* [185] */ MatcherIndex(15),
-  /* [186] */ MatcherIndex(48),
-  /* [187] */ MatcherIndex(11),
-  /* [188] */ MatcherIndex(15),
-  /* [189] */ MatcherIndex(49),
-  /* [190] */ MatcherIndex(11),
-  /* [191] */ MatcherIndex(15),
-  /* [192] */ MatcherIndex(46),
-  /* [193] */ MatcherIndex(9),
-  /* [194] */ MatcherIndex(14),
-  /* [195] */ MatcherIndex(11),
-  /* [196] */ MatcherIndex(46),
-  /* [197] */ MatcherIndex(10),
-  /* [198] */ MatcherIndex(14),
-  /* [199] */ MatcherIndex(9),
-  /* [200] */ MatcherIndex(46),
-  /* [201] */ MatcherIndex(11),
-  /* [202] */ MatcherIndex(14),
-  /* [203] */ MatcherIndex(1),
-  /* [204] */ MatcherIndex(47),
-  /* [205] */ MatcherIndex(9),
-  /* [206] */ MatcherIndex(14),
-  /* [207] */ MatcherIndex(47),
-  /* [208] */ MatcherIndex(10),
-  /* [209] */ MatcherIndex(14),
-  /* [210] */ MatcherIndex(47),
-  /* [211] */ MatcherIndex(11),
-  /* [212] */ MatcherIndex(14),
-  /* [213] */ MatcherIndex(48),
-  /* [214] */ MatcherIndex(9),
-  /* [215] */ MatcherIndex(14),
-  /* [216] */ MatcherIndex(48),
-  /* [217] */ MatcherIndex(10),
-  /* [218] */ MatcherIndex(14),
-  /* [219] */ MatcherIndex(48),
-  /* [220] */ MatcherIndex(11),
-  /* [221] */ MatcherIndex(14),
-  /* [222] */ MatcherIndex(49),
-  /* [223] */ MatcherIndex(9),
-  /* [224] */ MatcherIndex(14),
-  /* [225] */ MatcherIndex(49),
-  /* [226] */ MatcherIndex(10),
-  /* [227] */ MatcherIndex(14),
-  /* [228] */ MatcherIndex(49),
-  /* [229] */ MatcherIndex(11),
-  /* [230] */ MatcherIndex(14),
-  /* [231] */ MatcherIndex(25),
-  /* [232] */ MatcherIndex(2),
-  /* [233] */ MatcherIndex(0),
-  /* [234] */ MatcherIndex(25),
-  /* [235] */ MatcherIndex(1),
-  /* [236] */ MatcherIndex(6),
-  /* [237] */ MatcherIndex(25),
-  /* [238] */ MatcherIndex(1),
-  /* [239] */ MatcherIndex(10),
-  /* [240] */ MatcherIndex(54),
-  /* [241] */ MatcherIndex(0),
-  /* [242] */ MatcherIndex(52),
-  /* [243] */ MatcherIndex(0),
-  /* [244] */ MatcherIndex(34),
-  /* [245] */ MatcherIndex(0),
-  /* [246] */ MatcherIndex(13),
-  /* [247] */ MatcherIndex(10),
-  /* [248] */ MatcherIndex(35),
-  /* [249] */ MatcherIndex(0),
-  /* [250] */ MatcherIndex(36),
-  /* [251] */ MatcherIndex(0),
-  /* [252] */ MatcherIndex(37),
-  /* [253] */ MatcherIndex(0),
-  /* [254] */ MatcherIndex(38),
-  /* [255] */ MatcherIndex(0),
-  /* [256] */ MatcherIndex(39),
-  /* [257] */ MatcherIndex(0),
-  /* [258] */ MatcherIndex(40),
-  /* [259] */ MatcherIndex(0),
-  /* [260] */ MatcherIndex(13),
-  /* [261] */ MatcherIndex(9),
-  /* [262] */ MatcherIndex(34),
-  /* [263] */ MatcherIndex(11),
-  /* [264] */ MatcherIndex(35),
-  /* [265] */ MatcherIndex(11),
-  /* [266] */ MatcherIndex(36),
-  /* [267] */ MatcherIndex(11),
-  /* [268] */ MatcherIndex(37),
-  /* [269] */ MatcherIndex(11),
-  /* [270] */ MatcherIndex(38),
-  /* [271] */ MatcherIndex(11),
-  /* [272] */ MatcherIndex(39),
+  /* [182] */ MatcherIndex(55),
+  /* [183] */ MatcherIndex(0),
+  /* [184] */ MatcherIndex(1),
+  /* [185] */ MatcherIndex(25),
+  /* [186] */ MatcherIndex(0),
+  /* [187] */ MatcherIndex(2),
+  /* [188] */ MatcherIndex(53),
+  /* [189] */ MatcherIndex(0),
+  /* [190] */ MatcherIndex(1),
+  /* [191] */ MatcherIndex(46),
+  /* [192] */ MatcherIndex(0),
+  /* [193] */ MatcherIndex(1),
+  /* [194] */ MatcherIndex(47),
+  /* [195] */ MatcherIndex(0),
+  /* [196] */ MatcherIndex(1),
+  /* [197] */ MatcherIndex(48),
+  /* [198] */ MatcherIndex(0),
+  /* [199] */ MatcherIndex(1),
+  /* [200] */ MatcherIndex(49),
+  /* [201] */ MatcherIndex(0),
+  /* [202] */ MatcherIndex(1),
+  /* [203] */ MatcherIndex(46),
+  /* [204] */ MatcherIndex(9),
+  /* [205] */ MatcherIndex(15),
+  /* [206] */ MatcherIndex(47),
+  /* [207] */ MatcherIndex(9),
+  /* [208] */ MatcherIndex(15),
+  /* [209] */ MatcherIndex(48),
+  /* [210] */ MatcherIndex(9),
+  /* [211] */ MatcherIndex(15),
+  /* [212] */ MatcherIndex(49),
+  /* [213] */ MatcherIndex(9),
+  /* [214] */ MatcherIndex(15),
+  /* [215] */ MatcherIndex(46),
+  /* [216] */ MatcherIndex(10),
+  /* [217] */ MatcherIndex(15),
+  /* [218] */ MatcherIndex(47),
+  /* [219] */ MatcherIndex(10),
+  /* [220] */ MatcherIndex(15),
+  /* [221] */ MatcherIndex(48),
+  /* [222] */ MatcherIndex(10),
+  /* [223] */ MatcherIndex(15),
+  /* [224] */ MatcherIndex(49),
+  /* [225] */ MatcherIndex(10),
+  /* [226] */ MatcherIndex(15),
+  /* [227] */ MatcherIndex(46),
+  /* [228] */ MatcherIndex(11),
+  /* [229] */ MatcherIndex(15),
+  /* [230] */ MatcherIndex(47),
+  /* [231] */ MatcherIndex(11),
+  /* [232] */ MatcherIndex(15),
+  /* [233] */ MatcherIndex(48),
+  /* [234] */ MatcherIndex(11),
+  /* [235] */ MatcherIndex(15),
+  /* [236] */ MatcherIndex(49),
+  /* [237] */ MatcherIndex(11),
+  /* [238] */ MatcherIndex(15),
+  /* [239] */ MatcherIndex(46),
+  /* [240] */ MatcherIndex(9),
+  /* [241] */ MatcherIndex(14),
+  /* [242] */ MatcherIndex(46),
+  /* [243] */ MatcherIndex(10),
+  /* [244] */ MatcherIndex(14),
+  /* [245] */ MatcherIndex(46),
+  /* [246] */ MatcherIndex(11),
+  /* [247] */ MatcherIndex(14),
+  /* [248] */ MatcherIndex(47),
+  /* [249] */ MatcherIndex(9),
+  /* [250] */ MatcherIndex(14),
+  /* [251] */ MatcherIndex(47),
+  /* [252] */ MatcherIndex(10),
+  /* [253] */ MatcherIndex(14),
+  /* [254] */ MatcherIndex(47),
+  /* [255] */ MatcherIndex(11),
+  /* [256] */ MatcherIndex(14),
+  /* [257] */ MatcherIndex(48),
+  /* [258] */ MatcherIndex(9),
+  /* [259] */ MatcherIndex(14),
+  /* [260] */ MatcherIndex(48),
+  /* [261] */ MatcherIndex(10),
+  /* [262] */ MatcherIndex(14),
+  /* [263] */ MatcherIndex(48),
+  /* [264] */ MatcherIndex(11),
+  /* [265] */ MatcherIndex(14),
+  /* [266] */ MatcherIndex(49),
+  /* [267] */ MatcherIndex(9),
+  /* [268] */ MatcherIndex(14),
+  /* [269] */ MatcherIndex(49),
+  /* [270] */ MatcherIndex(10),
+  /* [271] */ MatcherIndex(14),
+  /* [272] */ MatcherIndex(49),
   /* [273] */ MatcherIndex(11),
-  /* [274] */ MatcherIndex(13),
-  /* [275] */ MatcherIndex(0),
-  /* [276] */ MatcherIndex(13),
-  /* [277] */ MatcherIndex(1),
-  /* [278] */ MatcherIndex(51),
-  /* [279] */ MatcherIndex(0),
-  /* [280] */ MatcherIndex(56),
-  /* [281] */ MatcherIndex(0),
-  /* [282] */ MatcherIndex(16),
-  /* [283] */ MatcherIndex(0),
-  /* [284] */ MatcherIndex(16),
-  /* [285] */ MatcherIndex(11),
-  /* [286] */ MatcherIndex(16),
-  /* [287] */ MatcherIndex(12),
-  /* [288] */ MatcherIndex(17),
+  /* [274] */ MatcherIndex(14),
+  /* [275] */ MatcherIndex(25),
+  /* [276] */ MatcherIndex(2),
+  /* [277] */ MatcherIndex(0),
+  /* [278] */ MatcherIndex(25),
+  /* [279] */ MatcherIndex(1),
+  /* [280] */ MatcherIndex(6),
+  /* [281] */ MatcherIndex(25),
+  /* [282] */ MatcherIndex(1),
+  /* [283] */ MatcherIndex(10),
+  /* [284] */ MatcherIndex(54),
+  /* [285] */ MatcherIndex(0),
+  /* [286] */ MatcherIndex(52),
+  /* [287] */ MatcherIndex(0),
+  /* [288] */ MatcherIndex(34),
   /* [289] */ MatcherIndex(0),
-  /* [290] */ MatcherIndex(17),
-  /* [291] */ MatcherIndex(11),
-  /* [292] */ MatcherIndex(17),
-  /* [293] */ MatcherIndex(12),
-  /* [294] */ MatcherIndex(18),
+  /* [290] */ MatcherIndex(13),
+  /* [291] */ MatcherIndex(10),
+  /* [292] */ MatcherIndex(35),
+  /* [293] */ MatcherIndex(0),
+  /* [294] */ MatcherIndex(36),
   /* [295] */ MatcherIndex(0),
-  /* [296] */ MatcherIndex(18),
-  /* [297] */ MatcherIndex(11),
-  /* [298] */ MatcherIndex(18),
-  /* [299] */ MatcherIndex(12),
-  /* [300] */ MatcherIndex(19),
+  /* [296] */ MatcherIndex(37),
+  /* [297] */ MatcherIndex(0),
+  /* [298] */ MatcherIndex(38),
+  /* [299] */ MatcherIndex(0),
+  /* [300] */ MatcherIndex(39),
   /* [301] */ MatcherIndex(0),
-  /* [302] */ MatcherIndex(19),
-  /* [303] */ MatcherIndex(11),
-  /* [304] */ MatcherIndex(19),
-  /* [305] */ MatcherIndex(12),
-  /* [306] */ MatcherIndex(20),
-  /* [307] */ MatcherIndex(0),
-  /* [308] */ MatcherIndex(20),
+  /* [302] */ MatcherIndex(40),
+  /* [303] */ MatcherIndex(0),
+  /* [304] */ MatcherIndex(13),
+  /* [305] */ MatcherIndex(9),
+  /* [306] */ MatcherIndex(34),
+  /* [307] */ MatcherIndex(11),
+  /* [308] */ MatcherIndex(35),
   /* [309] */ MatcherIndex(11),
-  /* [310] */ MatcherIndex(20),
-  /* [311] */ MatcherIndex(12),
-  /* [312] */ MatcherIndex(21),
-  /* [313] */ MatcherIndex(0),
-  /* [314] */ MatcherIndex(21),
+  /* [310] */ MatcherIndex(36),
+  /* [311] */ MatcherIndex(11),
+  /* [312] */ MatcherIndex(37),
+  /* [313] */ MatcherIndex(11),
+  /* [314] */ MatcherIndex(38),
   /* [315] */ MatcherIndex(11),
-  /* [316] */ MatcherIndex(21),
-  /* [317] */ MatcherIndex(12),
-  /* [318] */ MatcherIndex(22),
+  /* [316] */ MatcherIndex(39),
+  /* [317] */ MatcherIndex(11),
+  /* [318] */ MatcherIndex(13),
   /* [319] */ MatcherIndex(0),
-  /* [320] */ MatcherIndex(22),
-  /* [321] */ MatcherIndex(11),
-  /* [322] */ MatcherIndex(22),
-  /* [323] */ MatcherIndex(12),
-  /* [324] */ MatcherIndex(23),
+  /* [320] */ MatcherIndex(13),
+  /* [321] */ MatcherIndex(1),
+  /* [322] */ MatcherIndex(51),
+  /* [323] */ MatcherIndex(0),
+  /* [324] */ MatcherIndex(56),
   /* [325] */ MatcherIndex(0),
-  /* [326] */ MatcherIndex(23),
-  /* [327] */ MatcherIndex(11),
-  /* [328] */ MatcherIndex(23),
-  /* [329] */ MatcherIndex(12),
-  /* [330] */ MatcherIndex(24),
-  /* [331] */ MatcherIndex(0),
-  /* [332] */ MatcherIndex(24),
-  /* [333] */ MatcherIndex(11),
-  /* [334] */ MatcherIndex(24),
-  /* [335] */ MatcherIndex(12),
-  /* [336] */ MatcherIndex(64),
-  /* [337] */ MatcherIndex(68),
-  /* [338] */ MatcherIndex(69),
-  /* [339] */ MatcherIndex(58),
-  /* [340] */ MatcherIndex(66),
-  /* [341] */ MatcherIndex(65),
-  /* [342] */ MatcherIndex(41),
-  /* [343] */ MatcherIndex(42),
-  /* [344] */ MatcherIndex(43),
-  /* [345] */ MatcherIndex(44),
-  /* [346] */ MatcherIndex(45),
-  /* [347] */ MatcherIndex(50),
-  /* [348] */ MatcherIndex(32),
-  /* [349] */ MatcherIndex(33),
-  /* [350] */ MatcherIndex(70),
-  /* [351] */ MatcherIndex(61),
-  /* [352] */ MatcherIndex(62),
-  /* [353] */ MatcherIndex(59),
-  /* [354] */ MatcherIndex(60),
-  /* [355] */ MatcherIndex(63),
+  /* [326] */ MatcherIndex(16),
+  /* [327] */ MatcherIndex(0),
+  /* [328] */ MatcherIndex(16),
+  /* [329] */ MatcherIndex(11),
+  /* [330] */ MatcherIndex(16),
+  /* [331] */ MatcherIndex(12),
+  /* [332] */ MatcherIndex(17),
+  /* [333] */ MatcherIndex(0),
+  /* [334] */ MatcherIndex(17),
+  /* [335] */ MatcherIndex(11),
+  /* [336] */ MatcherIndex(17),
+  /* [337] */ MatcherIndex(12),
+  /* [338] */ MatcherIndex(18),
+  /* [339] */ MatcherIndex(0),
+  /* [340] */ MatcherIndex(18),
+  /* [341] */ MatcherIndex(11),
+  /* [342] */ MatcherIndex(18),
+  /* [343] */ MatcherIndex(12),
+  /* [344] */ MatcherIndex(19),
+  /* [345] */ MatcherIndex(0),
+  /* [346] */ MatcherIndex(19),
+  /* [347] */ MatcherIndex(11),
+  /* [348] */ MatcherIndex(19),
+  /* [349] */ MatcherIndex(12),
+  /* [350] */ MatcherIndex(20),
+  /* [351] */ MatcherIndex(0),
+  /* [352] */ MatcherIndex(20),
+  /* [353] */ MatcherIndex(11),
+  /* [354] */ MatcherIndex(20),
+  /* [355] */ MatcherIndex(12),
+  /* [356] */ MatcherIndex(21),
+  /* [357] */ MatcherIndex(0),
+  /* [358] */ MatcherIndex(21),
+  /* [359] */ MatcherIndex(11),
+  /* [360] */ MatcherIndex(21),
+  /* [361] */ MatcherIndex(12),
+  /* [362] */ MatcherIndex(22),
+  /* [363] */ MatcherIndex(0),
+  /* [364] */ MatcherIndex(22),
+  /* [365] */ MatcherIndex(11),
+  /* [366] */ MatcherIndex(22),
+  /* [367] */ MatcherIndex(12),
+  /* [368] */ MatcherIndex(23),
+  /* [369] */ MatcherIndex(0),
+  /* [370] */ MatcherIndex(23),
+  /* [371] */ MatcherIndex(11),
+  /* [372] */ MatcherIndex(23),
+  /* [373] */ MatcherIndex(12),
+  /* [374] */ MatcherIndex(24),
+  /* [375] */ MatcherIndex(0),
+  /* [376] */ MatcherIndex(24),
+  /* [377] */ MatcherIndex(11),
+  /* [378] */ MatcherIndex(24),
+  /* [379] */ MatcherIndex(12),
+  /* [380] */ MatcherIndex(64),
+  /* [381] */ MatcherIndex(68),
+  /* [382] */ MatcherIndex(69),
+  /* [383] */ MatcherIndex(58),
+  /* [384] */ MatcherIndex(66),
+  /* [385] */ MatcherIndex(65),
+  /* [386] */ MatcherIndex(41),
+  /* [387] */ MatcherIndex(42),
+  /* [388] */ MatcherIndex(43),
+  /* [389] */ MatcherIndex(44),
+  /* [390] */ MatcherIndex(45),
+  /* [391] */ MatcherIndex(50),
+  /* [392] */ MatcherIndex(32),
+  /* [393] */ MatcherIndex(33),
+  /* [394] */ MatcherIndex(70),
+  /* [395] */ MatcherIndex(61),
+  /* [396] */ MatcherIndex(62),
+  /* [397] */ MatcherIndex(59),
+  /* [398] */ MatcherIndex(60),
+  /* [399] */ MatcherIndex(63),
 };
 
 static_assert(MatcherIndicesIndex::CanIndex(kMatcherIndices),
@@ -2085,7 +2129,7 @@
   {
     /* [0] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(19),
+    /* matcher_indices */ MatcherIndicesIndex(47),
   },
   {
     /* [1] */
@@ -2170,27 +2214,27 @@
   {
     /* [17] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [18] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [19] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(266),
+    /* matcher_indices */ MatcherIndicesIndex(310),
   },
   {
     /* [20] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [21] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [22] */
@@ -2200,37 +2244,37 @@
   {
     /* [23] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [24] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [25] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [26] */
     /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(24),
   },
   {
     /* [27] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(250),
+    /* matcher_indices */ MatcherIndicesIndex(294),
   },
   {
     /* [28] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [29] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [30] */
@@ -2240,22 +2284,22 @@
   {
     /* [31] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [32] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(343),
+    /* matcher_indices */ MatcherIndicesIndex(387),
   },
   {
     /* [33] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(349),
+    /* matcher_indices */ MatcherIndicesIndex(393),
   },
   {
     /* [34] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [35] */
@@ -2265,27 +2309,27 @@
   {
     /* [36] */
     /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [37] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [38] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(266),
+    /* matcher_indices */ MatcherIndicesIndex(310),
   },
   {
     /* [39] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [40] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [41] */
@@ -2295,87 +2339,87 @@
   {
     /* [42] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [43] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [44] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(264),
+    /* matcher_indices */ MatcherIndicesIndex(308),
   },
   {
     /* [45] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [46] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [47] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [48] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [49] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [50] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(268),
+    /* matcher_indices */ MatcherIndicesIndex(312),
   },
   {
     /* [51] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [52] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [53] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [54] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [55] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(198),
+    /* matcher_indices */ MatcherIndicesIndex(62),
   },
   {
     /* [56] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(272),
+    /* matcher_indices */ MatcherIndicesIndex(316),
   },
   {
     /* [57] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [58] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [59] */
@@ -2385,27 +2429,27 @@
   {
     /* [60] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [61] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [62] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(266),
+    /* matcher_indices */ MatcherIndicesIndex(310),
   },
   {
     /* [63] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [64] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [65] */
@@ -2415,27 +2459,27 @@
   {
     /* [66] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [67] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [68] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(343),
+    /* matcher_indices */ MatcherIndicesIndex(387),
   },
   {
     /* [69] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [70] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [71] */
@@ -2445,57 +2489,57 @@
   {
     /* [72] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(24),
   },
   {
     /* [73] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [74] */
     /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(24),
   },
   {
     /* [75] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(248),
+    /* matcher_indices */ MatcherIndicesIndex(292),
   },
   {
     /* [76] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [77] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [78] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [79] */
     /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(24),
   },
   {
     /* [80] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(256),
+    /* matcher_indices */ MatcherIndicesIndex(300),
   },
   {
     /* [81] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [82] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [83] */
@@ -2505,17 +2549,17 @@
   {
     /* [84] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(343),
+    /* matcher_indices */ MatcherIndicesIndex(387),
   },
   {
     /* [85] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [86] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [87] */
@@ -2525,47 +2569,47 @@
   {
     /* [88] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [89] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(342),
+    /* matcher_indices */ MatcherIndicesIndex(386),
   },
   {
     /* [90] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(349),
+    /* matcher_indices */ MatcherIndicesIndex(393),
   },
   {
     /* [91] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [92] */
     /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [93] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [94] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* matcher_indices */ MatcherIndicesIndex(389),
   },
   {
     /* [95] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(349),
+    /* matcher_indices */ MatcherIndicesIndex(393),
   },
   {
     /* [96] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [97] */
@@ -2575,22 +2619,22 @@
   {
     /* [98] */
     /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [99] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(266),
+    /* matcher_indices */ MatcherIndicesIndex(310),
   },
   {
     /* [100] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [101] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [102] */
@@ -2600,72 +2644,72 @@
   {
     /* [103] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [104] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(264),
+    /* matcher_indices */ MatcherIndicesIndex(308),
   },
   {
     /* [105] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [106] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [107] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [108] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [109] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(268),
+    /* matcher_indices */ MatcherIndicesIndex(312),
   },
   {
     /* [110] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [111] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [112] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [113] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(198),
+    /* matcher_indices */ MatcherIndicesIndex(62),
   },
   {
     /* [114] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(272),
+    /* matcher_indices */ MatcherIndicesIndex(316),
   },
   {
     /* [115] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [116] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [117] */
@@ -2675,97 +2719,97 @@
   {
     /* [118] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [119] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(270),
+    /* matcher_indices */ MatcherIndicesIndex(314),
   },
   {
     /* [120] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [121] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [122] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [123] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [124] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(264),
+    /* matcher_indices */ MatcherIndicesIndex(308),
   },
   {
     /* [125] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [126] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [127] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [128] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [129] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(268),
+    /* matcher_indices */ MatcherIndicesIndex(312),
   },
   {
     /* [130] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [131] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [132] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [133] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(198),
+    /* matcher_indices */ MatcherIndicesIndex(62),
   },
   {
     /* [134] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(272),
+    /* matcher_indices */ MatcherIndicesIndex(316),
   },
   {
     /* [135] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [136] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [137] */
@@ -2775,22 +2819,22 @@
   {
     /* [138] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [139] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(342),
+    /* matcher_indices */ MatcherIndicesIndex(386),
   },
   {
     /* [140] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [141] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [142] */
@@ -2800,22 +2844,22 @@
   {
     /* [143] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
+    /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
     /* [144] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* matcher_indices */ MatcherIndicesIndex(389),
   },
   {
     /* [145] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
     /* [146] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [147] */
@@ -2825,1533 +2869,1713 @@
   {
     /* [148] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(24),
   },
   {
     /* [149] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(36),
+    /* matcher_indices */ MatcherIndicesIndex(75),
   },
   {
     /* [150] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [151] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(42),
+    /* matcher_indices */ MatcherIndicesIndex(81),
   },
   {
     /* [152] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
+    /* matcher_indices */ MatcherIndicesIndex(103),
   },
   {
     /* [153] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [154] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(7),
+    /* matcher_indices */ MatcherIndicesIndex(21),
   },
   {
     /* [155] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [156] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(42),
+    /* matcher_indices */ MatcherIndicesIndex(81),
   },
   {
     /* [157] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
+    /* matcher_indices */ MatcherIndicesIndex(103),
   },
   {
     /* [158] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [159] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
+    /* matcher_indices */ MatcherIndicesIndex(86),
   },
   {
     /* [160] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [161] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(81),
   },
   {
     /* [162] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(103),
   },
   {
     /* [163] */
-    /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
     /* [164] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(254),
-  },
-  {
-    /* [165] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [166] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
-  },
-  {
-    /* [167] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(342),
-  },
-  {
-    /* [168] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [169] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
-  },
-  {
-    /* [170] */
-    /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
-  },
-  {
-    /* [171] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(344),
-  },
-  {
-    /* [172] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(349),
-  },
-  {
-    /* [173] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
-  },
-  {
-    /* [174] */
-    /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [175] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(264),
-  },
-  {
-    /* [176] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [177] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
-  },
-  {
-    /* [178] */
-    /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(260),
-  },
-  {
-    /* [179] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(268),
-  },
-  {
-    /* [180] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [181] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
-  },
-  {
-    /* [182] */
-    /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(198),
-  },
-  {
-    /* [183] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(270),
-  },
-  {
-    /* [184] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [185] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
-  },
-  {
-    /* [186] */
-    /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [187] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(270),
-  },
-  {
-    /* [188] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [189] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
-  },
-  {
-    /* [190] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [191] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(344),
-  },
-  {
-    /* [192] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [193] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(194),
-  },
-  {
-    /* [194] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [195] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(161),
-  },
-  {
-    /* [196] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [197] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [198] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [199] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(174),
-  },
-  {
-    /* [200] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [201] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [202] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(40),
-  },
-  {
-    /* [203] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(186),
-  },
-  {
-    /* [204] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [205] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [206] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(155),
-  },
-  {
-    /* [207] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(250),
-  },
-  {
-    /* [208] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(276),
-  },
-  {
-    /* [209] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [210] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(28),
-  },
-  {
-    /* [211] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(343),
-  },
-  {
-    /* [212] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [213] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [214] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [215] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(30),
-  },
-  {
-    /* [216] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [217] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
-  },
-  {
-    /* [218] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [219] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(0),
-  },
-  {
-    /* [220] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [221] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
-  },
-  {
-    /* [222] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [223] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [224] */
-    /* usage */ core::ParameterUsage::kY,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [225] */
-    /* usage */ core::ParameterUsage::kZ,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [226] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [227] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [228] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [229] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [230] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [231] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [232] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [233] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [234] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [235] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(159),
-  },
-  {
-    /* [236] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(159),
-  },
-  {
-    /* [237] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(159),
-  },
-  {
-    /* [238] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(159),
-  },
-  {
-    /* [239] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(126),
-  },
-  {
-    /* [240] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(126),
-  },
-  {
-    /* [241] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(126),
-  },
-  {
-    /* [242] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
-  },
-  {
-    /* [243] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
-  },
-  {
-    /* [244] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [245] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [246] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [247] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [248] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [249] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [250] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(53),
-  },
-  {
-    /* [251] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [252] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [253] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(123),
-  },
-  {
-    /* [254] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(123),
-  },
-  {
-    /* [255] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(262),
-  },
-  {
-    /* [256] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [257] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [258] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(347),
-  },
-  {
-    /* [259] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(348),
-  },
-  {
-    /* [260] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(23),
-  },
-  {
-    /* [261] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(153),
-  },
-  {
-    /* [262] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [263] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [264] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(157),
-  },
-  {
-    /* [265] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [266] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [267] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(165),
-  },
-  {
-    /* [268] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [269] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [270] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(168),
-  },
-  {
-    /* [271] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [272] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(40),
-  },
-  {
-    /* [273] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(171),
-  },
-  {
-    /* [274] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [275] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(40),
-  },
-  {
-    /* [276] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(177),
-  },
-  {
-    /* [277] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [278] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(40),
-  },
-  {
-    /* [279] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(180),
-  },
-  {
-    /* [280] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [281] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(155),
-  },
-  {
-    /* [282] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(183),
-  },
-  {
-    /* [283] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [284] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(155),
-  },
-  {
-    /* [285] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(189),
-  },
-  {
-    /* [286] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [287] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(155),
-  },
-  {
-    /* [288] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(244),
-  },
-  {
-    /* [289] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [290] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [291] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(248),
-  },
-  {
-    /* [292] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(276),
-  },
-  {
-    /* [293] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [294] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(252),
-  },
-  {
-    /* [295] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(202),
-  },
-  {
-    /* [296] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [297] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(258),
-  },
-  {
-    /* [298] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(276),
-  },
-  {
-    /* [299] */
-    /* usage */ core::ParameterUsage::kSampleIndex,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [300] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(342),
-  },
-  {
-    /* [301] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [302] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [303] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(346),
-  },
-  {
-    /* [304] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [305] */
-    /* usage */ core::ParameterUsage::kSampleIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [306] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(213),
-  },
-  {
-    /* [307] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [308] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [309] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(216),
-  },
-  {
-    /* [310] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [311] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [312] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(219),
-  },
-  {
-    /* [313] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [314] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [315] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(67),
-  },
-  {
-    /* [316] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(72),
-  },
-  {
-    /* [317] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(62),
-  },
-  {
-    /* [318] */
-    /* usage */ core::ParameterUsage::kXy,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [319] */
-    /* usage */ core::ParameterUsage::kZ,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [320] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [321] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [322] */
-    /* usage */ core::ParameterUsage::kYz,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [323] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [324] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [325] */
-    /* usage */ core::ParameterUsage::kY,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [326] */
-    /* usage */ core::ParameterUsage::kZw,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [327] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [328] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [329] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [330] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(135),
-  },
-  {
-    /* [331] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(244),
-  },
-  {
-    /* [332] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [333] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(248),
-  },
-  {
-    /* [334] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [335] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(250),
-  },
-  {
-    /* [336] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [337] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(252),
-  },
-  {
-    /* [338] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [339] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(254),
-  },
-  {
-    /* [340] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [341] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(256),
-  },
-  {
-    /* [342] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [343] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(342),
-  },
-  {
-    /* [344] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [345] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(343),
-  },
-  {
-    /* [346] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [347] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(344),
-  },
-  {
-    /* [348] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [349] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(345),
-  },
-  {
-    /* [350] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [351] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(347),
-  },
-  {
-    /* [352] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [353] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(192),
-  },
-  {
-    /* [354] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [355] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(196),
-  },
-  {
-    /* [356] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [357] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(200),
-  },
-  {
-    /* [358] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [359] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(204),
-  },
-  {
-    /* [360] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [361] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(207),
-  },
-  {
-    /* [362] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [363] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(210),
-  },
-  {
-    /* [364] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [365] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(222),
-  },
-  {
-    /* [366] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [367] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(225),
-  },
-  {
-    /* [368] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [369] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(228),
-  },
-  {
-    /* [370] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [371] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [372] */
-    /* usage */ core::ParameterUsage::kSourceLaneIndex,
-    /* matcher_indices */ MatcherIndicesIndex(338),
-  },
-  {
-    /* [373] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [374] */
-    /* usage */ core::ParameterUsage::kSourceLaneIndex,
-    /* matcher_indices */ MatcherIndicesIndex(338),
-  },
-  {
-    /* [375] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [376] */
-    /* usage */ core::ParameterUsage::kMask,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [377] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [378] */
-    /* usage */ core::ParameterUsage::kMask,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [379] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [380] */
-    /* usage */ core::ParameterUsage::kDelta,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [381] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [382] */
-    /* usage */ core::ParameterUsage::kDelta,
-    /* matcher_indices */ MatcherIndicesIndex(35),
-  },
-  {
-    /* [383] */
-    /* usage */ core::ParameterUsage::kE,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [384] */
-    /* usage */ core::ParameterUsage::kId,
-    /* matcher_indices */ MatcherIndicesIndex(338),
-  },
-  {
-    /* [385] */
-    /* usage */ core::ParameterUsage::kE,
-    /* matcher_indices */ MatcherIndicesIndex(120),
-  },
-  {
-    /* [386] */
-    /* usage */ core::ParameterUsage::kId,
-    /* matcher_indices */ MatcherIndicesIndex(338),
-  },
-  {
-    /* [387] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(52),
-  },
-  {
-    /* [388] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
-  },
-  {
-    /* [389] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(126),
-  },
-  {
-    /* [390] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [391] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(126),
-  },
-  {
-    /* [392] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(237),
-  },
-  {
-    /* [393] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(104),
-  },
-  {
-    /* [394] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(104),
-  },
-  {
-    /* [395] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [396] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(104),
-  },
-  {
-    /* [397] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(126),
-  },
-  {
-    /* [398] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(231),
-  },
-  {
-    /* [399] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(104),
-  },
-  {
-    /* [400] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(112),
-  },
-  {
-    /* [401] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(116),
-  },
-  {
-    /* [402] */
-    /* usage */ core::ParameterUsage::kXy,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [403] */
-    /* usage */ core::ParameterUsage::kZw,
-    /* matcher_indices */ MatcherIndicesIndex(274),
-  },
-  {
-    /* [404] */
-    /* usage */ core::ParameterUsage::kXyz,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [405] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [406] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [407] */
-    /* usage */ core::ParameterUsage::kZyw,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [408] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(14),
-  },
-  {
-    /* [409] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(92),
   },
   {
-    /* [410] */
+    /* [165] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
-    /* [411] */
+    /* [166] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(129),
+    /* matcher_indices */ MatcherIndicesIndex(81),
   },
   {
-    /* [412] */
+    /* [167] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(23),
+    /* matcher_indices */ MatcherIndicesIndex(103),
   },
   {
-    /* [413] */
+    /* [168] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(12),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
-    /* [414] */
+    /* [169] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(40),
+    /* matcher_indices */ MatcherIndicesIndex(28),
   },
   {
-    /* [415] */
+    /* [170] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(155),
+    /* matcher_indices */ MatcherIndicesIndex(13),
   },
   {
-    /* [416] */
+    /* [171] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(100),
+    /* matcher_indices */ MatcherIndicesIndex(81),
   },
   {
-    /* [417] */
+    /* [172] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [173] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [174] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(35),
+  },
+  {
+    /* [175] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [176] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(81),
+  },
+  {
+    /* [177] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [178] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [179] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [180] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [181] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [182] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [183] */
+    /* usage */ core::ParameterUsage::kComponent,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [184] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(141),
-  },
-  {
-    /* [418] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(144),
-  },
-  {
-    /* [419] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(147),
-  },
-  {
-    /* [420] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(150),
-  },
-  {
-    /* [421] */
-    /* usage */ core::ParameterUsage::kInputAttachment,
-    /* matcher_indices */ MatcherIndicesIndex(278),
-  },
-  {
-    /* [422] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(41),
-  },
-  {
-    /* [423] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(287),
-  },
-  {
-    /* [424] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(276),
-  },
-  {
-    /* [425] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(202),
-  },
-  {
-    /* [426] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(163),
-  },
-  {
-    /* [427] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(282),
-  },
-  {
-    /* [428] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(284),
-  },
-  {
-    /* [429] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(286),
-  },
-  {
-    /* [430] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(288),
-  },
-  {
-    /* [431] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(290),
-  },
-  {
-    /* [432] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(292),
-  },
-  {
-    /* [433] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(294),
-  },
-  {
-    /* [434] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(296),
-  },
-  {
-    /* [435] */
-    /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(298),
   },
   {
-    /* [436] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(300),
+    /* [185] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
-    /* [437] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(302),
+    /* [186] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
-    /* [438] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [187] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(386),
+  },
+  {
+    /* [188] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
+  },
+  {
+    /* [189] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(51),
+  },
+  {
+    /* [190] */
+    /* usage */ core::ParameterUsage::kOffset,
     /* matcher_indices */ MatcherIndicesIndex(304),
   },
   {
-    /* [439] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(306),
+    /* [191] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(388),
   },
   {
-    /* [440] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [192] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(393),
+  },
+  {
+    /* [193] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [194] */
+    /* usage */ core::ParameterUsage::kDepthRef,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [195] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(308),
   },
   {
-    /* [441] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(310),
+    /* [196] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
-    /* [442] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [197] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(51),
+  },
+  {
+    /* [198] */
+    /* usage */ core::ParameterUsage::kOffset,
+    /* matcher_indices */ MatcherIndicesIndex(304),
+  },
+  {
+    /* [199] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(312),
   },
   {
-    /* [443] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [200] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
+  },
+  {
+    /* [201] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [202] */
+    /* usage */ core::ParameterUsage::kOffset,
+    /* matcher_indices */ MatcherIndicesIndex(62),
+  },
+  {
+    /* [203] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(314),
   },
   {
-    /* [444] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(316),
+    /* [204] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
   },
   {
-    /* [445] */
+    /* [205] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [206] */
+    /* usage */ core::ParameterUsage::kBias,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [207] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(314),
+  },
+  {
+    /* [208] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
+  },
+  {
+    /* [209] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [210] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [211] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(388),
+  },
+  {
+    /* [212] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
+  },
+  {
+    /* [213] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [214] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [215] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(209),
+  },
+  {
+    /* [216] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [217] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [218] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [219] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(221),
+  },
+  {
+    /* [220] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [221] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [222] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(33),
+  },
+  {
+    /* [223] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(233),
+  },
+  {
+    /* [224] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [225] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [226] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [227] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(294),
+  },
+  {
+    /* [228] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(320),
+  },
+  {
+    /* [229] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [230] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(56),
+  },
+  {
+    /* [231] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(387),
+  },
+  {
+    /* [232] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [233] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [234] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [235] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(58),
+  },
+  {
+    /* [236] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [237] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [238] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [239] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(0),
+  },
+  {
+    /* [240] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [241] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [242] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [243] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(64),
+  },
+  {
+    /* [244] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [245] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [246] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [247] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(70),
+  },
+  {
+    /* [248] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [249] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [250] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [251] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(7),
+  },
+  {
+    /* [252] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [253] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [254] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [255] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(14),
+  },
+  {
+    /* [256] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [257] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [258] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [259] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [260] */
+    /* usage */ core::ParameterUsage::kY,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [261] */
+    /* usage */ core::ParameterUsage::kZ,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [262] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [263] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(318),
   },
   {
+    /* [264] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [265] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [266] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [267] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [268] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [269] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [270] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [271] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(79),
+  },
+  {
+    /* [272] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(79),
+  },
+  {
+    /* [273] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(79),
+  },
+  {
+    /* [274] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(79),
+  },
+  {
+    /* [275] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [276] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [277] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [278] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [279] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [280] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [281] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [282] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [283] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [284] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [285] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [286] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(103),
+  },
+  {
+    /* [287] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [288] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [289] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [290] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [291] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(306),
+  },
+  {
+    /* [292] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
+  },
+  {
+    /* [293] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [294] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(391),
+  },
+  {
+    /* [295] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(392),
+  },
+  {
+    /* [296] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(51),
+  },
+  {
+    /* [297] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(203),
+  },
+  {
+    /* [298] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [299] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [300] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(206),
+  },
+  {
+    /* [301] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [302] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [303] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(212),
+  },
+  {
+    /* [304] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [305] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [306] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(215),
+  },
+  {
+    /* [307] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [308] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(33),
+  },
+  {
+    /* [309] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(218),
+  },
+  {
+    /* [310] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [311] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(33),
+  },
+  {
+    /* [312] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(224),
+  },
+  {
+    /* [313] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [314] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(33),
+  },
+  {
+    /* [315] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(227),
+  },
+  {
+    /* [316] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [317] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [318] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(230),
+  },
+  {
+    /* [319] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [320] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [321] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(236),
+  },
+  {
+    /* [322] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [323] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [324] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(288),
+  },
+  {
+    /* [325] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [326] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [327] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(292),
+  },
+  {
+    /* [328] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(320),
+  },
+  {
+    /* [329] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [330] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(296),
+  },
+  {
+    /* [331] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(68),
+  },
+  {
+    /* [332] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [333] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(302),
+  },
+  {
+    /* [334] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(320),
+  },
+  {
+    /* [335] */
+    /* usage */ core::ParameterUsage::kSampleIndex,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [336] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(386),
+  },
+  {
+    /* [337] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [338] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [339] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(390),
+  },
+  {
+    /* [340] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [341] */
+    /* usage */ core::ParameterUsage::kSampleIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [342] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(257),
+  },
+  {
+    /* [343] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [344] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [345] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(260),
+  },
+  {
+    /* [346] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [347] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [348] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(263),
+  },
+  {
+    /* [349] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [350] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [351] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(117),
+  },
+  {
+    /* [352] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(122),
+  },
+  {
+    /* [353] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(112),
+  },
+  {
+    /* [354] */
+    /* usage */ core::ParameterUsage::kXy,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [355] */
+    /* usage */ core::ParameterUsage::kZ,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [356] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [357] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [358] */
+    /* usage */ core::ParameterUsage::kYz,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [359] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [360] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [361] */
+    /* usage */ core::ParameterUsage::kY,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [362] */
+    /* usage */ core::ParameterUsage::kZw,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [363] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [364] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [365] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [366] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(185),
+  },
+  {
+    /* [367] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(288),
+  },
+  {
+    /* [368] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [369] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(292),
+  },
+  {
+    /* [370] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [371] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(294),
+  },
+  {
+    /* [372] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [373] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(296),
+  },
+  {
+    /* [374] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [375] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(298),
+  },
+  {
+    /* [376] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [377] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(300),
+  },
+  {
+    /* [378] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(24),
+  },
+  {
+    /* [379] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(386),
+  },
+  {
+    /* [380] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [381] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(387),
+  },
+  {
+    /* [382] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [383] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(388),
+  },
+  {
+    /* [384] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [385] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(389),
+  },
+  {
+    /* [386] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [387] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(391),
+  },
+  {
+    /* [388] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [389] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(239),
+  },
+  {
+    /* [390] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [391] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(242),
+  },
+  {
+    /* [392] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [393] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(245),
+  },
+  {
+    /* [394] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [395] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(248),
+  },
+  {
+    /* [396] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [397] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(251),
+  },
+  {
+    /* [398] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [399] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(254),
+  },
+  {
+    /* [400] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [401] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(266),
+  },
+  {
+    /* [402] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [403] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(269),
+  },
+  {
+    /* [404] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [405] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(272),
+  },
+  {
+    /* [406] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [407] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [408] */
+    /* usage */ core::ParameterUsage::kSourceLaneIndex,
+    /* matcher_indices */ MatcherIndicesIndex(382),
+  },
+  {
+    /* [409] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [410] */
+    /* usage */ core::ParameterUsage::kSourceLaneIndex,
+    /* matcher_indices */ MatcherIndicesIndex(382),
+  },
+  {
+    /* [411] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [412] */
+    /* usage */ core::ParameterUsage::kMask,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [413] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [414] */
+    /* usage */ core::ParameterUsage::kMask,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [415] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [416] */
+    /* usage */ core::ParameterUsage::kDelta,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [417] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [418] */
+    /* usage */ core::ParameterUsage::kDelta,
+    /* matcher_indices */ MatcherIndicesIndex(13),
+  },
+  {
+    /* [419] */
+    /* usage */ core::ParameterUsage::kE,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [420] */
+    /* usage */ core::ParameterUsage::kId,
+    /* matcher_indices */ MatcherIndicesIndex(382),
+  },
+  {
+    /* [421] */
+    /* usage */ core::ParameterUsage::kE,
+    /* matcher_indices */ MatcherIndicesIndex(170),
+  },
+  {
+    /* [422] */
+    /* usage */ core::ParameterUsage::kId,
+    /* matcher_indices */ MatcherIndicesIndex(382),
+  },
+  {
+    /* [423] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(102),
+  },
+  {
+    /* [424] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(107),
+  },
+  {
+    /* [425] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [426] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [427] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [428] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(281),
+  },
+  {
+    /* [429] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(154),
+  },
+  {
+    /* [430] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(154),
+  },
+  {
+    /* [431] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [432] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(154),
+  },
+  {
+    /* [433] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [434] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(275),
+  },
+  {
+    /* [435] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(154),
+  },
+  {
+    /* [436] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(162),
+  },
+  {
+    /* [437] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(166),
+  },
+  {
+    /* [438] */
+    /* usage */ core::ParameterUsage::kXy,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [439] */
+    /* usage */ core::ParameterUsage::kZw,
+    /* matcher_indices */ MatcherIndicesIndex(318),
+  },
+  {
+    /* [440] */
+    /* usage */ core::ParameterUsage::kXyz,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [441] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [442] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [443] */
+    /* usage */ core::ParameterUsage::kZyw,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
+    /* [444] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(42),
+  },
+  {
+    /* [445] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(142),
+  },
+  {
     /* [446] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [447] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(322),
+    /* matcher_indices */ MatcherIndicesIndex(179),
   },
   {
     /* [448] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(324),
+    /* matcher_indices */ MatcherIndicesIndex(51),
   },
   {
     /* [449] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(326),
+    /* matcher_indices */ MatcherIndicesIndex(26),
   },
   {
     /* [450] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(328),
+    /* matcher_indices */ MatcherIndicesIndex(33),
   },
   {
     /* [451] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(330),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [452] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(332),
+    /* matcher_indices */ MatcherIndicesIndex(150),
   },
   {
     /* [453] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(191),
+  },
+  {
+    /* [454] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(194),
+  },
+  {
+    /* [455] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(197),
+  },
+  {
+    /* [456] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(200),
+  },
+  {
+    /* [457] */
+    /* usage */ core::ParameterUsage::kInputAttachment,
+    /* matcher_indices */ MatcherIndicesIndex(322),
+  },
+  {
+    /* [458] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(10),
+  },
+  {
+    /* [459] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(331),
+  },
+  {
+    /* [460] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(320),
+  },
+  {
+    /* [461] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(68),
+  },
+  {
+    /* [462] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(90),
+  },
+  {
+    /* [463] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(326),
+  },
+  {
+    /* [464] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(328),
+  },
+  {
+    /* [465] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(330),
+  },
+  {
+    /* [466] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(332),
+  },
+  {
+    /* [467] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(334),
   },
+  {
+    /* [468] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(336),
+  },
+  {
+    /* [469] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(338),
+  },
+  {
+    /* [470] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(340),
+  },
+  {
+    /* [471] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(342),
+  },
+  {
+    /* [472] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(344),
+  },
+  {
+    /* [473] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(346),
+  },
+  {
+    /* [474] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(348),
+  },
+  {
+    /* [475] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(350),
+  },
+  {
+    /* [476] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(352),
+  },
+  {
+    /* [477] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(354),
+  },
+  {
+    /* [478] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(356),
+  },
+  {
+    /* [479] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(358),
+  },
+  {
+    /* [480] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(360),
+  },
+  {
+    /* [481] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(362),
+  },
+  {
+    /* [482] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(364),
+  },
+  {
+    /* [483] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(366),
+  },
+  {
+    /* [484] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(368),
+  },
+  {
+    /* [485] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(370),
+  },
+  {
+    /* [486] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(372),
+  },
+  {
+    /* [487] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(374),
+  },
+  {
+    /* [488] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(376),
+  },
+  {
+    /* [489] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(378),
+  },
 };
 
 static_assert(ParameterIndex::CanIndex(kParameters),
@@ -4361,7 +4585,7 @@
   {
     /* [0] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(25),
+    /* matcher_indices */ MatcherIndicesIndex(53),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -4373,7 +4597,7 @@
   {
     /* [2] */
     /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(336),
+    /* matcher_indices */ MatcherIndicesIndex(380),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -4396,321 +4620,321 @@
   },
   {
     /* [6] */
-    /* name */ "TR",
-    /* matcher_indices */ MatcherIndicesIndex(350),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(53),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [7] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(350),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [8] */
-    /* name */ "C",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
+    /* [8] */
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(108),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
     /* [9] */
-    /* name */ "R",
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [10] */
-    /* name */ "K",
+    /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [11] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(350),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "AC",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [12] */
-    /* name */ "TR",
-    /* matcher_indices */ MatcherIndicesIndex(350),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(53),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [13] */
-    /* name */ "C",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [14] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(98),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [15] */
-    /* name */ "K",
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [16] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(341),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [17] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "AC",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [18] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(338),
+    /* name */ "TR",
+    /* matcher_indices */ MatcherIndicesIndex(394),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [19] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(338),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(394),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [20] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(337),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [21] */
-    /* name */ "K",
+    /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [22] */
-    /* name */ "C",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [23] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(394),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [24] */
+    /* name */ "TR",
+    /* matcher_indices */ MatcherIndicesIndex(394),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [25] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [26] */
     /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [24] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [25] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(337),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [26] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(41),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
     /* [27] */
-    /* name */ "M",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [28] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(385),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [29] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(337),
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(382),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [30] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [31] */
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [32] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(381),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [33] */
+    /* name */ "K",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [34] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [35] */
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [36] */
     /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [31] */
+    /* [37] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(381),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [38] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [39] */
     /* name */ "M",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [32] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(341),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [33] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [34] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [35] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(341),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [36] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [37] */
-    /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [38] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(337),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [39] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
     /* [40] */
-    /* name */ "R",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [41] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(350),
+    /* matcher_indices */ MatcherIndicesIndex(381),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [42] */
-    /* name */ "K",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [43] */
-    /* name */ "R",
+    /* name */ "M",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [44] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(350),
+    /* matcher_indices */ MatcherIndicesIndex(385),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [45] */
     /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [46] */
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [47] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(385),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [48] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [49] */
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [50] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(381),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [51] */
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [46] */
+    /* [52] */
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [53] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(394),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [54] */
     /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [47] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [48] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(336),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [49] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [50] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [51] */
-    /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(1),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [52] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [53] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [54] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(339),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
     /* [55] */
-    /* name */ "N",
+    /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [56] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(339),
+    /* matcher_indices */ MatcherIndicesIndex(394),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [57] */
-    /* name */ "N",
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [58] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(340),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "K",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [59] */
@@ -4721,127 +4945,199 @@
   {
     /* [60] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(341),
+    /* matcher_indices */ MatcherIndicesIndex(380),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [61] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(338),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [62] */
-    /* name */ "F",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
+    /* [62] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(382),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
     /* [63] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(1),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [64] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(338),
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [65] */
-    /* name */ "N",
+    /* name */ "A",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [66] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(383),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [67] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(353),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [68] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(287),
+    /* matcher_indices */ MatcherIndicesIndex(383),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [69] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(354),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [70] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(41),
+    /* matcher_indices */ MatcherIndicesIndex(384),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [71] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(351),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [72] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(35),
+    /* matcher_indices */ MatcherIndicesIndex(385),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [73] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(352),
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(382),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [74] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(53),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [75] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(355),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [76] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(351),
+    /* matcher_indices */ MatcherIndicesIndex(382),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [77] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(352),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [78] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(353),
+    /* matcher_indices */ MatcherIndicesIndex(20),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [79] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(354),
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(397),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [80] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(355),
+    /* matcher_indices */ MatcherIndicesIndex(331),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [81] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(398),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [82] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [83] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(395),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [84] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [85] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(396),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [86] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(103),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [87] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(399),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [88] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(395),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [89] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(396),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [90] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(397),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [91] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(398),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [92] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(399),
     /* kind */ TemplateInfo::Kind::kType,
   },
 };
@@ -4975,9 +5271,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(288),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(324),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4986,9 +5282,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(60),
-    /* parameters */ ParameterIndex(331),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* templates */ TemplateIndex(72),
+    /* parameters */ ParameterIndex(367),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -4997,9 +5293,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(75),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5008,9 +5304,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(60),
-    /* parameters */ ParameterIndex(333),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(72),
+    /* parameters */ ParameterIndex(369),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5019,9 +5315,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(27),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5030,9 +5326,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(60),
-    /* parameters */ ParameterIndex(335),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(72),
+    /* parameters */ ParameterIndex(371),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5041,9 +5337,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(294),
-    /* return_matcher_indices */ MatcherIndicesIndex(34),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(330),
+    /* return_matcher_indices */ MatcherIndicesIndex(12),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5052,9 +5348,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(60),
-    /* parameters */ ParameterIndex(337),
-    /* return_matcher_indices */ MatcherIndicesIndex(34),
+    /* templates */ TemplateIndex(72),
+    /* parameters */ ParameterIndex(373),
+    /* return_matcher_indices */ MatcherIndicesIndex(12),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5063,9 +5359,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(164),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(184),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5074,9 +5370,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(60),
-    /* parameters */ ParameterIndex(339),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(72),
+    /* parameters */ ParameterIndex(375),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5085,9 +5381,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(80),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5096,9 +5392,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(60),
-    /* parameters */ ParameterIndex(341),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(72),
+    /* parameters */ ParameterIndex(377),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5107,9 +5403,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(297),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(333),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5120,7 +5416,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5129,9 +5425,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
-    /* parameters */ ParameterIndex(343),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(31),
+    /* parameters */ ParameterIndex(379),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5142,7 +5438,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5151,9 +5447,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
-    /* parameters */ ParameterIndex(345),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(31),
+    /* parameters */ ParameterIndex(381),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5163,8 +5459,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5173,9 +5469,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
-    /* parameters */ ParameterIndex(347),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(31),
+    /* parameters */ ParameterIndex(383),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5186,7 +5482,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5195,9 +5491,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
-    /* parameters */ ParameterIndex(349),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(31),
+    /* parameters */ ParameterIndex(385),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5207,8 +5503,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(303),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* parameters */ ParameterIndex(339),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5217,9 +5513,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(417),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(453),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5228,9 +5524,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(418),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(454),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5239,9 +5535,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(419),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(455),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5250,9 +5546,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(420),
-    /* return_matcher_indices */ MatcherIndicesIndex(34),
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(456),
+    /* return_matcher_indices */ MatcherIndicesIndex(12),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5262,8 +5558,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(258),
-    /* return_matcher_indices */ MatcherIndicesIndex(246),
+    /* parameters */ ParameterIndex(294),
+    /* return_matcher_indices */ MatcherIndicesIndex(290),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5272,9 +5568,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(32),
-    /* parameters */ ParameterIndex(288),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(44),
+    /* parameters */ ParameterIndex(324),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5283,9 +5579,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(32),
-    /* parameters */ ParameterIndex(291),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(44),
+    /* parameters */ ParameterIndex(327),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5294,9 +5590,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(207),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(227),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5305,9 +5601,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(32),
-    /* parameters */ ParameterIndex(294),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(44),
+    /* parameters */ ParameterIndex(330),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5316,9 +5612,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(35),
-    /* parameters */ ParameterIndex(297),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(47),
+    /* parameters */ ParameterIndex(333),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5327,9 +5623,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(33),
-    /* parameters */ ParameterIndex(300),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(45),
+    /* parameters */ ParameterIndex(336),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5338,9 +5634,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(211),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(231),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5349,9 +5645,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(36),
-    /* parameters */ ParameterIndex(303),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(48),
+    /* parameters */ ParameterIndex(339),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5360,9 +5656,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(351),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(387),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5371,9 +5667,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(353),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(389),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5382,9 +5678,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(355),
-    /* return_matcher_indices */ MatcherIndicesIndex(40),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(391),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5393,9 +5689,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(357),
-    /* return_matcher_indices */ MatcherIndicesIndex(155),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(393),
+    /* return_matcher_indices */ MatcherIndicesIndex(40),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5404,9 +5700,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(359),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(395),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5415,9 +5711,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(361),
-    /* return_matcher_indices */ MatcherIndicesIndex(40),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(397),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5426,9 +5722,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(363),
-    /* return_matcher_indices */ MatcherIndicesIndex(155),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(399),
+    /* return_matcher_indices */ MatcherIndicesIndex(40),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5437,9 +5733,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(306),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(342),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5448,9 +5744,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(309),
-    /* return_matcher_indices */ MatcherIndicesIndex(40),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(345),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5459,9 +5755,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(312),
-    /* return_matcher_indices */ MatcherIndicesIndex(155),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(348),
+    /* return_matcher_indices */ MatcherIndicesIndex(40),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5470,9 +5766,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(365),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(401),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5481,9 +5777,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(367),
-    /* return_matcher_indices */ MatcherIndicesIndex(40),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(403),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5492,9 +5788,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(369),
-    /* return_matcher_indices */ MatcherIndicesIndex(155),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(405),
+    /* return_matcher_indices */ MatcherIndicesIndex(40),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5504,8 +5800,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(255),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(291),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5516,7 +5812,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5526,8 +5822,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(175),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(195),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5536,9 +5832,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(19),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5547,9 +5843,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(99),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5560,7 +5856,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(50),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5570,8 +5866,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(179),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(199),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5582,7 +5878,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(119),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5591,9 +5887,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(56),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5604,7 +5900,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5614,8 +5910,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(167),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* parameters */ ParameterIndex(187),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5624,9 +5920,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5635,9 +5931,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(84),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5647,8 +5943,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(191),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* parameters */ ParameterIndex(211),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5657,9 +5953,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(144),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5668,9 +5964,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(105),
   },
   {
@@ -5679,9 +5975,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(106),
   },
   {
@@ -5690,9 +5986,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -5701,9 +5997,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -5712,9 +6008,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(318),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(354),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -5723,9 +6019,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(321),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(357),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -5734,9 +6030,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(324),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(360),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -5745,9 +6041,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(402),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(438),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -5756,9 +6052,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(404),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(440),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -5767,9 +6063,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(406),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(442),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -5778,9 +6074,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(426),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(462),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -5789,9 +6085,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(426),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(462),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -5800,9 +6096,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(70),
-    /* parameters */ ParameterIndex(426),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(82),
+    /* parameters */ ParameterIndex(462),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -5811,9 +6107,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(72),
-    /* parameters */ ParameterIndex(426),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(84),
+    /* parameters */ ParameterIndex(462),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -5822,9 +6118,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(74),
-    /* parameters */ ParameterIndex(426),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(86),
+    /* parameters */ ParameterIndex(462),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -5835,7 +6131,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(124),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5846,7 +6142,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(124),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5855,9 +6151,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(62),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5866,9 +6162,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(62),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5879,7 +6175,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(129),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5890,7 +6186,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(129),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5900,8 +6196,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(187),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(207),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5910,9 +6206,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(134),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5921,9 +6217,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5932,9 +6228,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5943,9 +6239,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5954,9 +6250,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5965,9 +6261,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
-    /* parameters */ ParameterIndex(191),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(31),
+    /* parameters */ ParameterIndex(211),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5976,9 +6272,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(144),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5987,9 +6283,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(74),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5998,9 +6294,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(74),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6009,9 +6305,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(26),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6020,9 +6316,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(26),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6031,9 +6327,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(163),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(183),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6042,9 +6338,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(79),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6055,7 +6351,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6065,8 +6361,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(167),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(187),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6075,9 +6371,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6086,9 +6382,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(84),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6098,8 +6394,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(191),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(211),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6108,9 +6404,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(144),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6119,8 +6415,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(261),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(297),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6130,8 +6426,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(264),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(300),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6141,8 +6437,8 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(195),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(215),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6152,8 +6448,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(267),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(303),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6163,8 +6459,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(270),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(306),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6174,8 +6470,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(273),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(309),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6185,8 +6481,8 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(199),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(219),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6196,8 +6492,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(276),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(312),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6207,8 +6503,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(279),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(315),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6218,8 +6514,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(282),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(318),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6229,8 +6525,8 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(203),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(223),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6240,8 +6536,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(17),
-    /* parameters */ ParameterIndex(285),
+    /* templates */ TemplateIndex(29),
+    /* parameters */ ParameterIndex(321),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -6251,7 +6547,7 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(/* invalid */),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(105),
@@ -6262,8 +6558,8 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(231),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(267),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(106),
   },
@@ -6273,7 +6569,7 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(1),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
@@ -6284,8 +6580,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(223),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(259),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
@@ -6295,8 +6591,8 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(318),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(354),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
@@ -6306,8 +6602,8 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(321),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(357),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
@@ -6317,8 +6613,8 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(425),
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(461),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
@@ -6328,8 +6624,8 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(425),
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(461),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
@@ -6339,8 +6635,8 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(70),
-    /* parameters */ ParameterIndex(425),
+    /* templates */ TemplateIndex(82),
+    /* parameters */ ParameterIndex(461),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
@@ -6350,8 +6646,8 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(72),
-    /* parameters */ ParameterIndex(425),
+    /* templates */ TemplateIndex(84),
+    /* parameters */ ParameterIndex(461),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
@@ -6361,8 +6657,8 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(74),
-    /* parameters */ ParameterIndex(425),
+    /* templates */ TemplateIndex(86),
+    /* parameters */ ParameterIndex(461),
     /* return_matcher_indices */ MatcherIndicesIndex(5),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
@@ -6372,9 +6668,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(288),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(324),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6383,9 +6679,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(75),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6394,9 +6690,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(27),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6405,9 +6701,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(294),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(330),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6416,9 +6712,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(164),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(184),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6427,9 +6723,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
+    /* templates */ TemplateIndex(28),
     /* parameters */ ParameterIndex(80),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6440,7 +6736,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6451,7 +6747,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6461,8 +6757,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6473,7 +6769,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6482,7 +6778,7 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
+    /* templates */ TemplateIndex(60),
     /* parameters */ ParameterIndex(1),
     /* return_matcher_indices */ MatcherIndicesIndex(6),
     /* const_eval_fn */ ConstEvalFunctionIndex(86),
@@ -6493,9 +6789,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
     /* const_eval_fn */ ConstEvalFunctionIndex(86),
   },
   {
@@ -6504,9 +6800,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
     /* const_eval_fn */ ConstEvalFunctionIndex(86),
   },
   {
@@ -6515,9 +6811,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(390),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(426),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
     /* const_eval_fn */ ConstEvalFunctionIndex(86),
   },
   {
@@ -6526,9 +6822,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(395),
-    /* return_matcher_indices */ MatcherIndicesIndex(104),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(431),
+    /* return_matcher_indices */ MatcherIndicesIndex(154),
     /* const_eval_fn */ ConstEvalFunctionIndex(86),
   },
   {
@@ -6537,9 +6833,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(394),
-    /* return_matcher_indices */ MatcherIndicesIndex(104),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(430),
+    /* return_matcher_indices */ MatcherIndicesIndex(154),
     /* const_eval_fn */ ConstEvalFunctionIndex(86),
   },
   {
@@ -6548,9 +6844,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(38),
-    /* parameters */ ParameterIndex(396),
-    /* return_matcher_indices */ MatcherIndicesIndex(231),
+    /* templates */ TemplateIndex(50),
+    /* parameters */ ParameterIndex(432),
+    /* return_matcher_indices */ MatcherIndicesIndex(275),
     /* const_eval_fn */ ConstEvalFunctionIndex(87),
   },
   {
@@ -6559,9 +6855,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(38),
-    /* parameters */ ParameterIndex(398),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
+    /* templates */ TemplateIndex(50),
+    /* parameters */ ParameterIndex(434),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -6570,9 +6866,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(400),
-    /* return_matcher_indices */ MatcherIndicesIndex(108),
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(436),
+    /* return_matcher_indices */ MatcherIndicesIndex(158),
     /* const_eval_fn */ ConstEvalFunctionIndex(89),
   },
   {
@@ -6581,9 +6877,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(105),
   },
   {
@@ -6592,9 +6888,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(106),
   },
   {
@@ -6603,9 +6899,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6614,9 +6910,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -6625,9 +6921,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(424),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(460),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6636,9 +6932,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(424),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(460),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6647,9 +6943,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(70),
-    /* parameters */ ParameterIndex(424),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(82),
+    /* parameters */ ParameterIndex(460),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6658,9 +6954,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(72),
-    /* parameters */ ParameterIndex(424),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(84),
+    /* parameters */ ParameterIndex(460),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6669,9 +6965,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(74),
-    /* parameters */ ParameterIndex(424),
-    /* return_matcher_indices */ MatcherIndicesIndex(274),
+    /* templates */ TemplateIndex(86),
+    /* parameters */ ParameterIndex(460),
+    /* return_matcher_indices */ MatcherIndicesIndex(318),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6682,7 +6978,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(104),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6693,7 +6989,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(104),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6702,9 +6998,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(38),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6713,9 +7009,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(38),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6726,7 +7022,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(109),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6737,7 +7033,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(109),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6747,8 +7043,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(183),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(203),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6757,9 +7053,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(114),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6770,7 +7066,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6781,7 +7077,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6790,9 +7086,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(19),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6801,9 +7097,9 @@
     /* num_parameters */ 7,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(19),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6814,7 +7110,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(50),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6825,7 +7121,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(50),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6836,7 +7132,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(119),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6845,9 +7141,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(56),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6858,7 +7154,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6869,7 +7165,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6878,9 +7174,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6889,9 +7185,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6901,8 +7197,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6911,9 +7207,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6924,7 +7220,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6935,7 +7231,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6944,9 +7240,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6955,9 +7251,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6967,8 +7263,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6977,9 +7273,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6990,7 +7286,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7001,7 +7297,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7010,9 +7306,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7021,9 +7317,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7033,8 +7329,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7043,2565 +7339,79 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(18),
+    /* templates */ TemplateIndex(30),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
     /* [189] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(282),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [190] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(427),
-    /* return_matcher_indices */ MatcherIndicesIndex(282),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [191] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(282),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [192] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(282),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [193] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(428),
-    /* return_matcher_indices */ MatcherIndicesIndex(282),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [194] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(429),
-    /* return_matcher_indices */ MatcherIndicesIndex(282),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [195] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(288),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [196] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(430),
-    /* return_matcher_indices */ MatcherIndicesIndex(288),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [197] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 6,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(288),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [198] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(288),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [199] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(431),
-    /* return_matcher_indices */ MatcherIndicesIndex(288),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [200] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(432),
-    /* return_matcher_indices */ MatcherIndicesIndex(288),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [201] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(294),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [202] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(433),
-    /* return_matcher_indices */ MatcherIndicesIndex(294),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [203] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 8,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(294),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [204] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(294),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [205] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(434),
-    /* return_matcher_indices */ MatcherIndicesIndex(294),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [206] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(435),
-    /* return_matcher_indices */ MatcherIndicesIndex(294),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [207] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(300),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [208] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(436),
-    /* return_matcher_indices */ MatcherIndicesIndex(300),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [209] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 6,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(300),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [210] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(300),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [211] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(437),
-    /* return_matcher_indices */ MatcherIndicesIndex(300),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [212] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(438),
-    /* return_matcher_indices */ MatcherIndicesIndex(300),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [213] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(306),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [214] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(439),
-    /* return_matcher_indices */ MatcherIndicesIndex(306),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [215] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 9,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(306),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [216] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(306),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [217] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(440),
-    /* return_matcher_indices */ MatcherIndicesIndex(306),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [218] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(441),
-    /* return_matcher_indices */ MatcherIndicesIndex(306),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [219] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(312),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [220] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(442),
-    /* return_matcher_indices */ MatcherIndicesIndex(312),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [221] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 12,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(312),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [222] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(312),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [223] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(443),
-    /* return_matcher_indices */ MatcherIndicesIndex(312),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [224] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(444),
-    /* return_matcher_indices */ MatcherIndicesIndex(312),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [225] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(318),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [226] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(445),
-    /* return_matcher_indices */ MatcherIndicesIndex(318),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [227] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 8,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(318),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [228] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(318),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [229] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(446),
-    /* return_matcher_indices */ MatcherIndicesIndex(318),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [230] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(447),
-    /* return_matcher_indices */ MatcherIndicesIndex(318),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [231] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(324),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [232] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(448),
-    /* return_matcher_indices */ MatcherIndicesIndex(324),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [233] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 12,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(324),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [234] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(324),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [235] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(449),
-    /* return_matcher_indices */ MatcherIndicesIndex(324),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [236] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(450),
-    /* return_matcher_indices */ MatcherIndicesIndex(324),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [237] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(330),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [238] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(451),
-    /* return_matcher_indices */ MatcherIndicesIndex(330),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [239] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 16,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(330),
-    /* const_eval_fn */ ConstEvalFunctionIndex(111),
-  },
-  {
-    /* [240] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(330),
-    /* const_eval_fn */ ConstEvalFunctionIndex(112),
-  },
-  {
-    /* [241] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(68),
-    /* parameters */ ParameterIndex(452),
-    /* return_matcher_indices */ MatcherIndicesIndex(330),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [242] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(66),
-    /* parameters */ ParameterIndex(453),
-    /* return_matcher_indices */ MatcherIndicesIndex(330),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [243] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(27),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [244] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(80),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [245] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [246] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [247] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(419),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [248] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [249] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [250] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [251] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(390),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [252] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(393),
-    /* return_matcher_indices */ MatcherIndicesIndex(104),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [253] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [254] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [255] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [256] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(390),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [257] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(393),
-    /* return_matcher_indices */ MatcherIndicesIndex(104),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [258] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(90),
-  },
-  {
-    /* [259] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(90),
-  },
-  {
-    /* [260] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(90),
-  },
-  {
-    /* [261] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(390),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(90),
-  },
-  {
-    /* [262] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(91),
-  },
-  {
-    /* [263] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(91),
-  },
-  {
-    /* [264] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(91),
-  },
-  {
-    /* [265] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(390),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(91),
-  },
-  {
-    /* [266] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [267] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(123),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [268] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [269] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [270] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(94),
-  },
-  {
-    /* [271] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(123),
-    /* const_eval_fn */ ConstEvalFunctionIndex(94),
-  },
-  {
-    /* [272] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(94),
-  },
-  {
-    /* [273] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(94),
-  },
-  {
-    /* [274] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(42),
-  },
-  {
-    /* [275] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(42),
-  },
-  {
-    /* [276] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(245),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(42),
-  },
-  {
-    /* [277] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(248),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(62),
-  },
-  {
-    /* [278] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(240),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(62),
-  },
-  {
-    /* [279] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(55),
-    /* parameters */ ParameterIndex(251),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(63),
-  },
-  {
-    /* [280] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(41),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [281] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(422),
-    /* return_matcher_indices */ MatcherIndicesIndex(41),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [282] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(76),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(41),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [283] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [284] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [285] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(77),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [286] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [287] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(410),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [288] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(78),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [289] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(287),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [290] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(423),
-    /* return_matcher_indices */ MatcherIndicesIndex(287),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [291] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(79),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(287),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [292] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
-  },
-  {
-    /* [293] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
-  },
-  {
-    /* [294] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(80),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [295] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(0),
-  },
-  {
-    /* [296] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(0),
-  },
-  {
-    /* [297] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(1),
-  },
-  {
-    /* [298] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(1),
-  },
-  {
-    /* [299] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(2),
-  },
-  {
-    /* [300] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(2),
-  },
-  {
-    /* [301] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(3),
-  },
-  {
-    /* [302] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(3),
-  },
-  {
-    /* [303] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(4),
-  },
-  {
-    /* [304] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(4),
-  },
-  {
-    /* [305] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(5),
-  },
-  {
-    /* [306] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(5),
-  },
-  {
-    /* [307] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(6),
-  },
-  {
-    /* [308] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(6),
-  },
-  {
-    /* [309] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(7),
-  },
-  {
-    /* [310] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(7),
-  },
-  {
-    /* [311] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(8),
-  },
-  {
-    /* [312] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(8),
-  },
-  {
-    /* [313] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(9),
-  },
-  {
-    /* [314] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(9),
-  },
-  {
-    /* [315] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(10),
-  },
-  {
-    /* [316] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(10),
-  },
-  {
-    /* [317] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(11),
-  },
-  {
-    /* [318] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(11),
-  },
-  {
-    /* [319] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(12),
-  },
-  {
-    /* [320] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(12),
-  },
-  {
-    /* [321] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(13),
-  },
-  {
-    /* [322] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(13),
-  },
-  {
-    /* [323] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(14),
-  },
-  {
-    /* [324] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(14),
-  },
-  {
-    /* [325] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(15),
-  },
-  {
-    /* [326] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(15),
-  },
-  {
-    /* [327] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(16),
-  },
-  {
-    /* [328] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(16),
-  },
-  {
-    /* [329] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(18),
-  },
-  {
-    /* [330] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(18),
-  },
-  {
-    /* [331] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(20),
-  },
-  {
-    /* [332] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(20),
-  },
-  {
-    /* [333] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(410),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [334] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(411),
-    /* return_matcher_indices */ MatcherIndicesIndex(129),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [335] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(24),
-  },
-  {
-    /* [336] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(24),
-  },
-  {
-    /* [337] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(25),
-  },
-  {
-    /* [338] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(25),
-  },
-  {
-    /* [339] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(16),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(26),
-  },
-  {
-    /* [340] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(160),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(26),
-  },
-  {
-    /* [341] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(28),
-  },
-  {
-    /* [342] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(28),
-  },
-  {
-    /* [343] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(29),
-  },
-  {
-    /* [344] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(29),
-  },
-  {
-    /* [345] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(30),
-  },
-  {
-    /* [346] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(30),
-  },
-  {
-    /* [347] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(31),
-  },
-  {
-    /* [348] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(31),
-  },
-  {
-    /* [349] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(32),
-  },
-  {
-    /* [350] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(32),
-  },
-  {
-    /* [351] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(240),
-    /* const_eval_fn */ ConstEvalFunctionIndex(33),
-  },
-  {
-    /* [352] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(132),
-    /* const_eval_fn */ ConstEvalFunctionIndex(33),
-  },
-  {
-    /* [353] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(15),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(34),
-  },
-  {
-    /* [354] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(34),
-  },
-  {
-    /* [355] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(35),
-  },
-  {
-    /* [356] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(35),
-  },
-  {
-    /* [357] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(25),
-    /* parameters */ ParameterIndex(327),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(36),
-  },
-  {
-    /* [358] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(329),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(36),
-  },
-  {
-    /* [359] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(37),
-  },
-  {
-    /* [360] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(37),
-  },
-  {
-    /* [361] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(38),
-  },
-  {
-    /* [362] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(38),
-  },
-  {
-    /* [363] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(39),
-  },
-  {
-    /* [364] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(39),
-  },
-  {
-    /* [365] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(40),
-  },
-  {
-    /* [366] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(40),
-  },
-  {
-    /* [367] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(41),
-  },
-  {
-    /* [368] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(41),
-  },
-  {
-    /* [369] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(242),
-    /* const_eval_fn */ ConstEvalFunctionIndex(43),
-  },
-  {
-    /* [370] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(138),
-    /* const_eval_fn */ ConstEvalFunctionIndex(43),
-  },
-  {
-    /* [371] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(54),
-  },
-  {
-    /* [372] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(54),
-  },
-  {
-    /* [373] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(410),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(55),
-  },
-  {
-    /* [374] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(411),
-    /* return_matcher_indices */ MatcherIndicesIndex(129),
-    /* const_eval_fn */ ConstEvalFunctionIndex(55),
-  },
-  {
-    /* [375] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(56),
-  },
-  {
-    /* [376] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(56),
-  },
-  {
-    /* [377] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(59),
-  },
-  {
-    /* [378] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(59),
-  },
-  {
-    /* [379] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(60),
-  },
-  {
-    /* [380] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(60),
-  },
-  {
-    /* [381] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(61),
-  },
-  {
-    /* [382] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(61),
-  },
-  {
-    /* [383] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(58),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(64),
-  },
-  {
-    /* [384] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(64),
-  },
-  {
-    /* [385] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(65),
-  },
-  {
-    /* [386] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(65),
-  },
-  {
-    /* [387] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(66),
-  },
-  {
-    /* [388] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(66),
-  },
-  {
-    /* [389] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(67),
-  },
-  {
-    /* [390] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(67),
-  },
-  {
-    /* [391] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(68),
-  },
-  {
-    /* [392] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(68),
-  },
-  {
-    /* [393] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(69),
-  },
-  {
-    /* [394] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(69),
-  },
-  {
-    /* [395] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(70),
-  },
-  {
-    /* [396] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(70),
-  },
-  {
-    /* [397] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(71),
-  },
-  {
-    /* [398] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(71),
-  },
-  {
-    /* [399] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(73),
-  },
-  {
-    /* [400] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(73),
-  },
-  {
-    /* [401] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(297),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [402] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(303),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [403] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [404] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(258),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [405] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(371),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [406] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(373),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [407] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(371),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [408] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(373),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [409] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(375),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [410] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(377),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [411] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(379),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [412] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(381),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [413] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(371),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [414] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(373),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [415] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(383),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [416] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(385),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [417] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(383),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [418] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(385),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [419] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 5,
     /* templates */ TemplateIndex(0),
-    /* parameters */ ParameterIndex(215),
+    /* parameters */ ParameterIndex(235),
     /* return_matcher_indices */ MatcherIndicesIndex(6),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [420] */
+    /* [190] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 6,
     /* templates */ TemplateIndex(0),
-    /* parameters */ ParameterIndex(219),
+    /* parameters */ ParameterIndex(239),
     /* return_matcher_indices */ MatcherIndicesIndex(6),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [421] */
+    /* [191] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(6),
+    /* parameters */ ParameterIndex(243),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [192] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(12),
+    /* parameters */ ParameterIndex(247),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [193] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 6,
+    /* templates */ TemplateIndex(6),
+    /* parameters */ ParameterIndex(251),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [194] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 6,
+    /* templates */ TemplateIndex(12),
+    /* parameters */ ParameterIndex(255),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [195] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -9612,7 +7422,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [422] */
+    /* [196] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -9623,158 +7433,2644 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
+    /* [197] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 4,
+    /* templates */ TemplateIndex(7),
+    /* parameters */ ParameterIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [198] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 4,
+    /* templates */ TemplateIndex(13),
+    /* parameters */ ParameterIndex(164),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [199] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(7),
+    /* parameters */ ParameterIndex(169),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [200] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(13),
+    /* parameters */ ParameterIndex(174),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [201] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(326),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [202] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(463),
+    /* return_matcher_indices */ MatcherIndicesIndex(326),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [203] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(326),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [204] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(326),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [205] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(464),
+    /* return_matcher_indices */ MatcherIndicesIndex(326),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [206] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(465),
+    /* return_matcher_indices */ MatcherIndicesIndex(326),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [207] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(332),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [208] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(466),
+    /* return_matcher_indices */ MatcherIndicesIndex(332),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [209] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 6,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(332),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [210] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(332),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [211] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(467),
+    /* return_matcher_indices */ MatcherIndicesIndex(332),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [212] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(468),
+    /* return_matcher_indices */ MatcherIndicesIndex(332),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [213] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(338),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [214] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(469),
+    /* return_matcher_indices */ MatcherIndicesIndex(338),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [215] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 8,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(338),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [216] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(338),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [217] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(470),
+    /* return_matcher_indices */ MatcherIndicesIndex(338),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [218] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(471),
+    /* return_matcher_indices */ MatcherIndicesIndex(338),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [219] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(344),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [220] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(472),
+    /* return_matcher_indices */ MatcherIndicesIndex(344),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [221] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 6,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(344),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [222] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(344),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [223] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(473),
+    /* return_matcher_indices */ MatcherIndicesIndex(344),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [224] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(474),
+    /* return_matcher_indices */ MatcherIndicesIndex(344),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [225] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(350),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [226] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(475),
+    /* return_matcher_indices */ MatcherIndicesIndex(350),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [227] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 9,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(350),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [228] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(350),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [229] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(476),
+    /* return_matcher_indices */ MatcherIndicesIndex(350),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [230] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(477),
+    /* return_matcher_indices */ MatcherIndicesIndex(350),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [231] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(356),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [232] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(478),
+    /* return_matcher_indices */ MatcherIndicesIndex(356),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [233] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 12,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(356),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [234] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(356),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [235] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(479),
+    /* return_matcher_indices */ MatcherIndicesIndex(356),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [236] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(480),
+    /* return_matcher_indices */ MatcherIndicesIndex(356),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [237] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(362),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [238] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(481),
+    /* return_matcher_indices */ MatcherIndicesIndex(362),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [239] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 8,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(362),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [240] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(362),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [241] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(482),
+    /* return_matcher_indices */ MatcherIndicesIndex(362),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [242] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(483),
+    /* return_matcher_indices */ MatcherIndicesIndex(362),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [243] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(368),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [244] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(484),
+    /* return_matcher_indices */ MatcherIndicesIndex(368),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [245] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 12,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(368),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [246] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(368),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [247] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(485),
+    /* return_matcher_indices */ MatcherIndicesIndex(368),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [248] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(486),
+    /* return_matcher_indices */ MatcherIndicesIndex(368),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [249] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(374),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [250] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(487),
+    /* return_matcher_indices */ MatcherIndicesIndex(374),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [251] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 16,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(374),
+    /* const_eval_fn */ ConstEvalFunctionIndex(111),
+  },
+  {
+    /* [252] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(374),
+    /* const_eval_fn */ ConstEvalFunctionIndex(112),
+  },
+  {
+    /* [253] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(80),
+    /* parameters */ ParameterIndex(488),
+    /* return_matcher_indices */ MatcherIndicesIndex(374),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [254] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(78),
+    /* parameters */ ParameterIndex(489),
+    /* return_matcher_indices */ MatcherIndicesIndex(374),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [255] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(27),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [256] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(80),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [257] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(32),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [258] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(94),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [259] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(455),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [260] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
+  },
+  {
+    /* [261] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
+  },
+  {
+    /* [262] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
+  },
+  {
+    /* [263] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(426),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
+  },
+  {
+    /* [264] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(429),
+    /* return_matcher_indices */ MatcherIndicesIndex(154),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
+  },
+  {
+    /* [265] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
+  },
+  {
+    /* [266] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
+  },
+  {
+    /* [267] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
+  },
+  {
+    /* [268] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(426),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
+  },
+  {
+    /* [269] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(429),
+    /* return_matcher_indices */ MatcherIndicesIndex(154),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
+  },
+  {
+    /* [270] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(90),
+  },
+  {
+    /* [271] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(90),
+  },
+  {
+    /* [272] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(90),
+  },
+  {
+    /* [273] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(426),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(90),
+  },
+  {
+    /* [274] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(91),
+  },
+  {
+    /* [275] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(91),
+  },
+  {
+    /* [276] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(91),
+  },
+  {
+    /* [277] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(426),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(91),
+  },
+  {
+    /* [278] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [279] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [280] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [281] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [282] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(94),
+  },
+  {
+    /* [283] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(94),
+  },
+  {
+    /* [284] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(94),
+  },
+  {
+    /* [285] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(94),
+  },
+  {
+    /* [286] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(42),
+  },
+  {
+    /* [287] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(42),
+  },
+  {
+    /* [288] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(281),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(42),
+  },
+  {
+    /* [289] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(284),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(62),
+  },
+  {
+    /* [290] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(276),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(62),
+  },
+  {
+    /* [291] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(67),
+    /* parameters */ ParameterIndex(287),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(63),
+  },
+  {
+    /* [292] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [293] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(458),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [294] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(88),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [295] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [296] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [297] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(89),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [298] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [299] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(446),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [300] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(90),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [301] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [302] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(459),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [303] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(91),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [304] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+  },
+  {
+    /* [305] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+  },
+  {
+    /* [306] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(92),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [307] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(0),
+  },
+  {
+    /* [308] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(0),
+  },
+  {
+    /* [309] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(1),
+  },
+  {
+    /* [310] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(1),
+  },
+  {
+    /* [311] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(2),
+  },
+  {
+    /* [312] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(2),
+  },
+  {
+    /* [313] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(3),
+  },
+  {
+    /* [314] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(3),
+  },
+  {
+    /* [315] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(4),
+  },
+  {
+    /* [316] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(4),
+  },
+  {
+    /* [317] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(5),
+  },
+  {
+    /* [318] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(5),
+  },
+  {
+    /* [319] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(6),
+  },
+  {
+    /* [320] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(6),
+  },
+  {
+    /* [321] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(7),
+  },
+  {
+    /* [322] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(7),
+  },
+  {
+    /* [323] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(8),
+  },
+  {
+    /* [324] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(8),
+  },
+  {
+    /* [325] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(9),
+  },
+  {
+    /* [326] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(9),
+  },
+  {
+    /* [327] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(10),
+  },
+  {
+    /* [328] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(10),
+  },
+  {
+    /* [329] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(11),
+  },
+  {
+    /* [330] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(11),
+  },
+  {
+    /* [331] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(12),
+  },
+  {
+    /* [332] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(12),
+  },
+  {
+    /* [333] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(13),
+  },
+  {
+    /* [334] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(13),
+  },
+  {
+    /* [335] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(14),
+  },
+  {
+    /* [336] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(14),
+  },
+  {
+    /* [337] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(15),
+  },
+  {
+    /* [338] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(15),
+  },
+  {
+    /* [339] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(16),
+  },
+  {
+    /* [340] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(16),
+  },
+  {
+    /* [341] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(18),
+  },
+  {
+    /* [342] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(18),
+  },
+  {
+    /* [343] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(20),
+  },
+  {
+    /* [344] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(24),
+    /* const_eval_fn */ ConstEvalFunctionIndex(20),
+  },
+  {
+    /* [345] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(446),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [346] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(447),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [347] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(24),
+  },
+  {
+    /* [348] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(24),
+  },
+  {
+    /* [349] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(25),
+  },
+  {
+    /* [350] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(25),
+  },
+  {
+    /* [351] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(16),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(26),
+  },
+  {
+    /* [352] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(180),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(26),
+  },
+  {
+    /* [353] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(28),
+  },
+  {
+    /* [354] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(28),
+  },
+  {
+    /* [355] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(29),
+  },
+  {
+    /* [356] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(29),
+  },
+  {
+    /* [357] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(30),
+  },
+  {
+    /* [358] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(30),
+  },
+  {
+    /* [359] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(31),
+  },
+  {
+    /* [360] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(31),
+  },
+  {
+    /* [361] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(32),
+  },
+  {
+    /* [362] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(32),
+  },
+  {
+    /* [363] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(284),
+    /* const_eval_fn */ ConstEvalFunctionIndex(33),
+  },
+  {
+    /* [364] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(182),
+    /* const_eval_fn */ ConstEvalFunctionIndex(33),
+  },
+  {
+    /* [365] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(15),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(34),
+  },
+  {
+    /* [366] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(34),
+  },
+  {
+    /* [367] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(35),
+  },
+  {
+    /* [368] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(35),
+  },
+  {
+    /* [369] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(37),
+    /* parameters */ ParameterIndex(363),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(36),
+  },
+  {
+    /* [370] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(365),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(36),
+  },
+  {
+    /* [371] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(37),
+  },
+  {
+    /* [372] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(24),
+    /* const_eval_fn */ ConstEvalFunctionIndex(37),
+  },
+  {
+    /* [373] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(38),
+  },
+  {
+    /* [374] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(38),
+  },
+  {
+    /* [375] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(39),
+  },
+  {
+    /* [376] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(39),
+  },
+  {
+    /* [377] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(40),
+  },
+  {
+    /* [378] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(40),
+  },
+  {
+    /* [379] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(41),
+  },
+  {
+    /* [380] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(41),
+  },
+  {
+    /* [381] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(286),
+    /* const_eval_fn */ ConstEvalFunctionIndex(43),
+  },
+  {
+    /* [382] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(188),
+    /* const_eval_fn */ ConstEvalFunctionIndex(43),
+  },
+  {
+    /* [383] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(54),
+  },
+  {
+    /* [384] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(54),
+  },
+  {
+    /* [385] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(446),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(55),
+  },
+  {
+    /* [386] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(447),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(55),
+  },
+  {
+    /* [387] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(56),
+  },
+  {
+    /* [388] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(56),
+  },
+  {
+    /* [389] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(59),
+  },
+  {
+    /* [390] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(59),
+  },
+  {
+    /* [391] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(60),
+  },
+  {
+    /* [392] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(60),
+  },
+  {
+    /* [393] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(61),
+  },
+  {
+    /* [394] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(61),
+  },
+  {
+    /* [395] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(70),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(64),
+  },
+  {
+    /* [396] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(64),
+  },
+  {
+    /* [397] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(65),
+  },
+  {
+    /* [398] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(65),
+  },
+  {
+    /* [399] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(66),
+  },
+  {
+    /* [400] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(66),
+  },
+  {
+    /* [401] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(67),
+  },
+  {
+    /* [402] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(67),
+  },
+  {
+    /* [403] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(68),
+  },
+  {
+    /* [404] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(68),
+  },
+  {
+    /* [405] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(69),
+  },
+  {
+    /* [406] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(69),
+  },
+  {
+    /* [407] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(70),
+  },
+  {
+    /* [408] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(70),
+  },
+  {
+    /* [409] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(71),
+  },
+  {
+    /* [410] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(71),
+  },
+  {
+    /* [411] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(73),
+  },
+  {
+    /* [412] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(73),
+  },
+  {
+    /* [413] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(333),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [414] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(339),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [415] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(44),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [416] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(294),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [417] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(407),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [418] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(409),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [419] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(407),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [420] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(409),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [421] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(411),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [422] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(413),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
     /* [423] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(415),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [424] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(417),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [425] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(407),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [426] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(409),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [427] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(419),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [428] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(421),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [429] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(419),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [430] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(421),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [431] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
     /* const_eval_fn */ ConstEvalFunctionIndex(81),
   },
   {
-    /* [424] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(123),
-    /* const_eval_fn */ ConstEvalFunctionIndex(81),
-  },
-  {
-    /* [425] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [426] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [427] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(58),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(83),
-  },
-  {
-    /* [428] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(58),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(83),
-  },
-  {
-    /* [429] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(92),
-  },
-  {
-    /* [430] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(92),
-  },
-  {
-    /* [431] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(97),
-  },
-  {
     /* [432] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(234),
-    /* const_eval_fn */ ConstEvalFunctionIndex(97),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(81),
   },
   {
     /* [433] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(54),
+    /* templates */ TemplateIndex(62),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(98),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
     /* [434] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(54),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(234),
-    /* const_eval_fn */ ConstEvalFunctionIndex(98),
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
     /* [435] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
+    /* templates */ TemplateIndex(70),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(99),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(83),
   },
   {
     /* [436] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(234),
-    /* const_eval_fn */ ConstEvalFunctionIndex(99),
+    /* templates */ TemplateIndex(70),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(83),
   },
   {
     /* [437] */
@@ -9782,10 +10078,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
+    /* templates */ TemplateIndex(62),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(100),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(92),
   },
   {
     /* [438] */
@@ -9793,10 +10089,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(234),
-    /* const_eval_fn */ ConstEvalFunctionIndex(100),
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(92),
   },
   {
     /* [439] */
@@ -9804,10 +10100,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(101),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(97),
   },
   {
     /* [440] */
@@ -9815,10 +10111,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(234),
-    /* const_eval_fn */ ConstEvalFunctionIndex(101),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(278),
+    /* const_eval_fn */ ConstEvalFunctionIndex(97),
   },
   {
     /* [441] */
@@ -9826,10 +10122,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(48),
+    /* templates */ TemplateIndex(66),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(102),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(98),
   },
   {
     /* [442] */
@@ -9837,10 +10133,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(48),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(234),
-    /* const_eval_fn */ ConstEvalFunctionIndex(102),
+    /* templates */ TemplateIndex(66),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(278),
+    /* const_eval_fn */ ConstEvalFunctionIndex(98),
   },
   {
     /* [443] */
@@ -9848,10 +10144,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(16),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(103),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(99),
   },
   {
     /* [444] */
@@ -9859,10 +10155,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(391),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(103),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(278),
+    /* const_eval_fn */ ConstEvalFunctionIndex(99),
   },
   {
     /* [445] */
@@ -9870,10 +10166,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(50),
-    /* parameters */ ParameterIndex(16),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(104),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(100),
   },
   {
     /* [446] */
@@ -9881,186 +10177,186 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(391),
-    /* return_matcher_indices */ MatcherIndicesIndex(126),
-    /* const_eval_fn */ ConstEvalFunctionIndex(104),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(278),
+    /* const_eval_fn */ ConstEvalFunctionIndex(100),
   },
   {
     /* [447] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(52),
-    /* parameters */ ParameterIndex(408),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [448] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(5),
-    /* const_eval_fn */ ConstEvalFunctionIndex(17),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(101),
+  },
+  {
+    /* [448] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(278),
+    /* const_eval_fn */ ConstEvalFunctionIndex(101),
   },
   {
     /* [449] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(409),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(19),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(102),
   },
   {
     /* [450] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(47),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(21),
+    /* templates */ TemplateIndex(60),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(278),
+    /* const_eval_fn */ ConstEvalFunctionIndex(102),
   },
   {
     /* [451] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(41),
-    /* const_eval_fn */ ConstEvalFunctionIndex(22),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(16),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(103),
   },
   {
     /* [452] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(23),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(427),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(103),
   },
   {
     /* [453] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(27),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(62),
+    /* parameters */ ParameterIndex(16),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(104),
   },
   {
     /* [454] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(44),
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(427),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(104),
   },
   {
     /* [455] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(412),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(45),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(64),
+    /* parameters */ ParameterIndex(444),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
     /* [456] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(412),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(46),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(5),
+    /* const_eval_fn */ ConstEvalFunctionIndex(17),
   },
   {
     /* [457] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(412),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(47),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(445),
+    /* return_matcher_indices */ MatcherIndicesIndex(24),
+    /* const_eval_fn */ ConstEvalFunctionIndex(19),
   },
   {
     /* [458] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(413),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(48),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(59),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(24),
+    /* const_eval_fn */ ConstEvalFunctionIndex(21),
   },
   {
     /* [459] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(413),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(49),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(22),
   },
   {
     /* [460] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(414),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(50),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(23),
   },
   {
     /* [461] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(415),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(51),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(27),
   },
   {
     /* [462] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(414),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(52),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(44),
   },
   {
     /* [463] */
@@ -10069,34 +10365,122 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(415),
-    /* return_matcher_indices */ MatcherIndicesIndex(35),
-    /* const_eval_fn */ ConstEvalFunctionIndex(53),
+    /* parameters */ ParameterIndex(448),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(45),
   },
   {
     /* [464] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(57),
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(448),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(46),
   },
   {
     /* [465] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(24),
-    /* parameters */ ParameterIndex(245),
-    /* return_matcher_indices */ MatcherIndicesIndex(120),
-    /* const_eval_fn */ ConstEvalFunctionIndex(58),
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(448),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(47),
   },
   {
     /* [466] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(449),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(48),
+  },
+  {
+    /* [467] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(449),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(49),
+  },
+  {
+    /* [468] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(450),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(50),
+  },
+  {
+    /* [469] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(451),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(51),
+  },
+  {
+    /* [470] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(450),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(52),
+  },
+  {
+    /* [471] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(451),
+    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* const_eval_fn */ ConstEvalFunctionIndex(53),
+  },
+  {
+    /* [472] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(57),
+  },
+  {
+    /* [473] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(36),
+    /* parameters */ ParameterIndex(281),
+    /* return_matcher_indices */ MatcherIndicesIndex(170),
+    /* const_eval_fn */ ConstEvalFunctionIndex(58),
+  },
+  {
+    /* [474] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 0,
     /* num_explicit_templates */ 0,
@@ -10107,73 +10491,84 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [467] */
+    /* [475] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(27),
-    /* parameters */ ParameterIndex(416),
-    /* return_matcher_indices */ MatcherIndicesIndex(96),
+    /* templates */ TemplateIndex(39),
+    /* parameters */ ParameterIndex(452),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(72),
   },
   {
-    /* [468] */
+    /* [476] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(23),
+    /* return_matcher_indices */ MatcherIndicesIndex(51),
     /* const_eval_fn */ ConstEvalFunctionIndex(74),
   },
   {
-    /* [469] */
+    /* [477] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(23),
+    /* return_matcher_indices */ MatcherIndicesIndex(51),
     /* const_eval_fn */ ConstEvalFunctionIndex(75),
   },
   {
-    /* [470] */
+    /* [478] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(23),
+    /* return_matcher_indices */ MatcherIndicesIndex(51),
     /* const_eval_fn */ ConstEvalFunctionIndex(76),
   },
   {
-    /* [471] */
+    /* [479] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(77),
   },
   {
-    /* [472] */
+    /* [480] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(78),
   },
   {
-    /* [473] */
+    /* [481] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
+    /* const_eval_fn */ ConstEvalFunctionIndex(79),
+  },
+  {
+    /* [482] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
@@ -10181,182 +10576,171 @@
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
     /* return_matcher_indices */ MatcherIndicesIndex(40),
-    /* const_eval_fn */ ConstEvalFunctionIndex(79),
-  },
-  {
-    /* [474] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(155),
     /* const_eval_fn */ ConstEvalFunctionIndex(80),
   },
   {
-    /* [475] */
+    /* [483] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(421),
-    /* return_matcher_indices */ MatcherIndicesIndex(159),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(457),
+    /* return_matcher_indices */ MatcherIndicesIndex(79),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [476] */
+    /* [484] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(50),
+    /* templates */ TemplateIndex(62),
     /* parameters */ ParameterIndex(0),
     /* return_matcher_indices */ MatcherIndicesIndex(6),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [477] */
+    /* [485] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(50),
+    /* templates */ TemplateIndex(62),
     /* parameters */ ParameterIndex(0),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [478] */
+    /* [486] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(50),
+    /* templates */ TemplateIndex(62),
     /* parameters */ ParameterIndex(0),
     /* return_matcher_indices */ MatcherIndicesIndex(6),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [479] */
+    /* [487] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(50),
+    /* templates */ TemplateIndex(62),
     /* parameters */ ParameterIndex(0),
-    /* return_matcher_indices */ MatcherIndicesIndex(280),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [480] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(155),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [481] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [482] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [483] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 1,
-    /* num_templates   */ 5,
-    /* templates */ TemplateIndex(6),
-    /* parameters */ ParameterIndex(387),
-    /* return_matcher_indices */ MatcherIndicesIndex(47),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [484] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 5,
-    /* templates */ TemplateIndex(11),
-    /* parameters */ ParameterIndex(315),
-    /* return_matcher_indices */ MatcherIndicesIndex(62),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [485] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(95),
-  },
-  {
-    /* [486] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(53),
-    /* const_eval_fn */ ConstEvalFunctionIndex(96),
-  },
-  {
-    /* [487] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 3,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(41),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(77),
+    /* return_matcher_indices */ MatcherIndicesIndex(324),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
     /* [488] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 3,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(44),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(82),
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(40),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
     /* [489] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [490] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [491] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(18),
+    /* parameters */ ParameterIndex(423),
+    /* return_matcher_indices */ MatcherIndicesIndex(97),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [492] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(23),
+    /* parameters */ ParameterIndex(351),
+    /* return_matcher_indices */ MatcherIndicesIndex(112),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [493] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(95),
+  },
+  {
+    /* [494] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
+    /* const_eval_fn */ ConstEvalFunctionIndex(96),
+  },
+  {
+    /* [495] */
     /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 0,
     /* num_explicit_templates */ 3,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(7),
+    /* templates */ TemplateIndex(53),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(87),
+    /* return_matcher_indices */ MatcherIndicesIndex(127),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [496] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 3,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(56),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(132),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [497] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 3,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(19),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(137),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
 };
@@ -10370,357 +10754,357 @@
     /* fn abs[T : fiu32_f16](T) -> T */
     /* fn abs[N : num, T : fiu32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(295),
+    /* overloads */ OverloadIndex(307),
   },
   {
     /* [1] */
     /* fn acos[T : f32_f16](@test_value(0.96891242171) T) -> T */
     /* fn acos[N : num, T : f32_f16](@test_value(0.96891242171) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(297),
+    /* overloads */ OverloadIndex(309),
   },
   {
     /* [2] */
     /* fn acosh[T : f32_f16](@test_value(1.5430806348) T) -> T */
     /* fn acosh[N : num, T : f32_f16](@test_value(1.5430806348) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(299),
+    /* overloads */ OverloadIndex(311),
   },
   {
     /* [3] */
     /* fn all(bool) -> bool */
     /* fn all[N : num](vec<N, bool>) -> bool */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(301),
+    /* overloads */ OverloadIndex(313),
   },
   {
     /* [4] */
     /* fn any(bool) -> bool */
     /* fn any[N : num](vec<N, bool>) -> bool */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(303),
+    /* overloads */ OverloadIndex(315),
   },
   {
     /* [5] */
     /* fn arrayLength[T, A : access](ptr<storage, runtime_array<T>, A>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(447),
+    /* overloads */ OverloadIndex(455),
   },
   {
     /* [6] */
     /* fn asin[T : f32_f16](@test_value(0.479425538604) T) -> T */
     /* fn asin[N : num, T : f32_f16](@test_value(0.479425538604) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(305),
+    /* overloads */ OverloadIndex(317),
   },
   {
     /* [7] */
     /* fn asinh[T : f32_f16](T) -> T */
     /* fn asinh[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(307),
+    /* overloads */ OverloadIndex(319),
   },
   {
     /* [8] */
     /* fn atan[T : f32_f16](T) -> T */
     /* fn atan[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(309),
+    /* overloads */ OverloadIndex(321),
   },
   {
     /* [9] */
     /* fn atan2[T : f32_f16](T, T) -> T */
     /* fn atan2[T : f32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(311),
+    /* overloads */ OverloadIndex(323),
   },
   {
     /* [10] */
     /* fn atanh[T : f32_f16](@test_value(0.5) T) -> T */
     /* fn atanh[N : num, T : f32_f16](@test_value(0.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(313),
+    /* overloads */ OverloadIndex(325),
   },
   {
     /* [11] */
     /* fn ceil[T : f32_f16](@test_value(1.5) T) -> T */
     /* fn ceil[N : num, T : f32_f16](@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(315),
+    /* overloads */ OverloadIndex(327),
   },
   {
     /* [12] */
     /* fn clamp[T : fiu32_f16](T, T, T) -> T */
     /* fn clamp[T : fiu32_f16, N : num](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(317),
+    /* overloads */ OverloadIndex(329),
   },
   {
     /* [13] */
     /* fn cos[T : f32_f16](@test_value(0) T) -> T */
     /* fn cos[N : num, T : f32_f16](@test_value(0) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(319),
+    /* overloads */ OverloadIndex(331),
   },
   {
     /* [14] */
     /* fn cosh[T : f32_f16](@test_value(0) T) -> T */
     /* fn cosh[N : num, T : f32_f16](@test_value(0) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(321),
+    /* overloads */ OverloadIndex(333),
   },
   {
     /* [15] */
     /* fn countLeadingZeros[T : iu32](T) -> T */
     /* fn countLeadingZeros[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(323),
+    /* overloads */ OverloadIndex(335),
   },
   {
     /* [16] */
     /* fn countOneBits[T : iu32](T) -> T */
     /* fn countOneBits[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(325),
+    /* overloads */ OverloadIndex(337),
   },
   {
     /* [17] */
     /* fn countTrailingZeros[T : iu32](T) -> T */
     /* fn countTrailingZeros[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(327),
+    /* overloads */ OverloadIndex(339),
   },
   {
     /* [18] */
     /* fn cross[T : f32_f16](vec3<T>, vec3<T>) -> vec3<T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(448),
+    /* overloads */ OverloadIndex(456),
   },
   {
     /* [19] */
     /* fn degrees[T : f32_f16](T) -> T */
     /* fn degrees[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(329),
+    /* overloads */ OverloadIndex(341),
   },
   {
     /* [20] */
     /* fn determinant[N : num, T : f32_f16](mat<N, N, T>) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(449),
+    /* overloads */ OverloadIndex(457),
   },
   {
     /* [21] */
     /* fn distance[T : f32_f16](T, T) -> T */
     /* fn distance[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> T */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(331),
+    /* overloads */ OverloadIndex(343),
   },
   {
     /* [22] */
     /* fn dot[N : num, T : fiu32_f16](vec<N, T>, vec<N, T>) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(450),
+    /* overloads */ OverloadIndex(458),
   },
   {
     /* [23] */
     /* fn dot4I8Packed(u32, u32) -> i32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(451),
+    /* overloads */ OverloadIndex(459),
   },
   {
     /* [24] */
     /* fn dot4U8Packed(u32, u32) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(452),
+    /* overloads */ OverloadIndex(460),
   },
   {
     /* [25] */
     /* fn dpdx(f32) -> f32 */
     /* fn dpdx[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [26] */
     /* fn dpdxCoarse(f32) -> f32 */
     /* fn dpdxCoarse[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [27] */
     /* fn dpdxFine(f32) -> f32 */
     /* fn dpdxFine[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [28] */
     /* fn dpdy(f32) -> f32 */
     /* fn dpdy[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [29] */
     /* fn dpdyCoarse(f32) -> f32 */
     /* fn dpdyCoarse[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [30] */
     /* fn dpdyFine(f32) -> f32 */
     /* fn dpdyFine[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [31] */
     /* fn exp[T : f32_f16](T) -> T */
     /* fn exp[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(335),
+    /* overloads */ OverloadIndex(347),
   },
   {
     /* [32] */
     /* fn exp2[T : f32_f16](T) -> T */
     /* fn exp2[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(337),
+    /* overloads */ OverloadIndex(349),
   },
   {
     /* [33] */
     /* fn extractBits[T : iu32](T, u32, u32) -> T */
     /* fn extractBits[N : num, T : iu32](vec<N, T>, u32, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(339),
+    /* overloads */ OverloadIndex(351),
   },
   {
     /* [34] */
     /* fn faceForward[N : num, T : f32_f16](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(453),
+    /* overloads */ OverloadIndex(461),
   },
   {
     /* [35] */
     /* fn firstLeadingBit[T : iu32](T) -> T */
     /* fn firstLeadingBit[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(341),
+    /* overloads */ OverloadIndex(353),
   },
   {
     /* [36] */
     /* fn firstTrailingBit[T : iu32](T) -> T */
     /* fn firstTrailingBit[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(343),
+    /* overloads */ OverloadIndex(355),
   },
   {
     /* [37] */
     /* fn floor[T : f32_f16](@test_value(1.5) T) -> T */
     /* fn floor[N : num, T : f32_f16](@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(345),
+    /* overloads */ OverloadIndex(357),
   },
   {
     /* [38] */
     /* fn fma[T : f32_f16](T, T, T) -> T */
     /* fn fma[N : num, T : f32_f16](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(347),
+    /* overloads */ OverloadIndex(359),
   },
   {
     /* [39] */
     /* fn fract[T : f32_f16](@test_value(1.25) T) -> T */
     /* fn fract[N : num, T : f32_f16](@test_value(1.25) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(349),
+    /* overloads */ OverloadIndex(361),
   },
   {
     /* [40] */
     /* fn frexp[T : f32_f16](T) -> __frexp_result<T> */
     /* fn frexp[N : num, T : f32_f16](vec<N, T>) -> __frexp_result_vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(351),
+    /* overloads */ OverloadIndex(363),
   },
   {
     /* [41] */
     /* fn fwidth(f32) -> f32 */
     /* fn fwidth[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [42] */
     /* fn fwidthCoarse(f32) -> f32 */
     /* fn fwidthCoarse[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [43] */
     /* fn fwidthFine(f32) -> f32 */
     /* fn fwidthFine[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(333),
+    /* overloads */ OverloadIndex(345),
   },
   {
     /* [44] */
     /* fn insertBits[T : iu32](T, T, u32, u32) -> T */
     /* fn insertBits[N : num, T : iu32](vec<N, T>, vec<N, T>, u32, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(353),
+    /* overloads */ OverloadIndex(365),
   },
   {
     /* [45] */
     /* fn inverseSqrt[T : f32_f16](T) -> T */
     /* fn inverseSqrt[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(355),
+    /* overloads */ OverloadIndex(367),
   },
   {
     /* [46] */
     /* fn ldexp[T : f32_f16, U : i32](T, U) -> T */
     /* fn ldexp[N : num, T : f32_f16, U : i32](vec<N, T>, vec<N, U>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(357),
+    /* overloads */ OverloadIndex(369),
   },
   {
     /* [47] */
     /* fn length[T : f32_f16](@test_value(0) T) -> T */
     /* fn length[N : num, T : f32_f16](@test_value(0) vec<N, T>) -> T */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(359),
+    /* overloads */ OverloadIndex(371),
   },
   {
     /* [48] */
     /* fn log[T : f32_f16](T) -> T */
     /* fn log[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(361),
+    /* overloads */ OverloadIndex(373),
   },
   {
     /* [49] */
     /* fn log2[T : f32_f16](T) -> T */
     /* fn log2[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(363),
+    /* overloads */ OverloadIndex(375),
   },
   {
     /* [50] */
     /* fn max[T : fiu32_f16](T, T) -> T */
     /* fn max[N : num, T : fiu32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(365),
+    /* overloads */ OverloadIndex(377),
   },
   {
     /* [51] */
     /* fn min[T : fiu32_f16](T, T) -> T */
     /* fn min[N : num, T : fiu32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(367),
+    /* overloads */ OverloadIndex(379),
   },
   {
     /* [52] */
@@ -10728,128 +11112,128 @@
     /* fn mix[N : num, T : f32_f16](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* fn mix[N : num, T : f32_f16](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(274),
+    /* overloads */ OverloadIndex(286),
   },
   {
     /* [53] */
     /* fn modf[T : f32_f16](@test_value(-1.5) T) -> __modf_result<T> */
     /* fn modf[N : num, T : f32_f16](@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(369),
+    /* overloads */ OverloadIndex(381),
   },
   {
     /* [54] */
     /* fn normalize[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(454),
+    /* overloads */ OverloadIndex(462),
   },
   {
     /* [55] */
     /* fn pack2x16float(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(455),
+    /* overloads */ OverloadIndex(463),
   },
   {
     /* [56] */
     /* fn pack2x16snorm(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(456),
+    /* overloads */ OverloadIndex(464),
   },
   {
     /* [57] */
     /* fn pack2x16unorm(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(457),
+    /* overloads */ OverloadIndex(465),
   },
   {
     /* [58] */
     /* fn pack4x8snorm(vec4<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(458),
+    /* overloads */ OverloadIndex(466),
   },
   {
     /* [59] */
     /* fn pack4x8unorm(vec4<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(459),
+    /* overloads */ OverloadIndex(467),
   },
   {
     /* [60] */
     /* fn pack4xI8(vec4<i32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(460),
+    /* overloads */ OverloadIndex(468),
   },
   {
     /* [61] */
     /* fn pack4xU8(vec4<u32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(461),
+    /* overloads */ OverloadIndex(469),
   },
   {
     /* [62] */
     /* fn pack4xI8Clamp(vec4<i32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(462),
+    /* overloads */ OverloadIndex(470),
   },
   {
     /* [63] */
     /* fn pack4xU8Clamp(vec4<u32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(463),
+    /* overloads */ OverloadIndex(471),
   },
   {
     /* [64] */
     /* fn pow[T : f32_f16](T, T) -> T */
     /* fn pow[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(371),
+    /* overloads */ OverloadIndex(383),
   },
   {
     /* [65] */
     /* fn quantizeToF16(f32) -> f32 */
     /* fn quantizeToF16[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(373),
+    /* overloads */ OverloadIndex(385),
   },
   {
     /* [66] */
     /* fn radians[T : f32_f16](T) -> T */
     /* fn radians[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(375),
+    /* overloads */ OverloadIndex(387),
   },
   {
     /* [67] */
     /* fn reflect[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(464),
+    /* overloads */ OverloadIndex(472),
   },
   {
     /* [68] */
     /* fn refract[N : num, T : f32_f16](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(465),
+    /* overloads */ OverloadIndex(473),
   },
   {
     /* [69] */
     /* fn reverseBits[T : iu32](T) -> T */
     /* fn reverseBits[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(377),
+    /* overloads */ OverloadIndex(389),
   },
   {
     /* [70] */
     /* fn round[T : f32_f16](@test_value(3.5) T) -> T */
     /* fn round[N : num, T : f32_f16](@test_value(3.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(379),
+    /* overloads */ OverloadIndex(391),
   },
   {
     /* [71] */
     /* fn saturate[T : f32_f16](@test_value(2) T) -> T */
     /* fn saturate[T : f32_f16, N : num](@test_value(2) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(381),
+    /* overloads */ OverloadIndex(393),
   },
   {
     /* [72] */
@@ -10857,136 +11241,136 @@
     /* fn select[T : scalar, N : num](vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
     /* fn select[N : num, T : scalar](vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(277),
+    /* overloads */ OverloadIndex(289),
   },
   {
     /* [73] */
     /* fn sign[T : fi32_f16](T) -> T */
     /* fn sign[N : num, T : fi32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(383),
+    /* overloads */ OverloadIndex(395),
   },
   {
     /* [74] */
     /* fn sin[T : f32_f16](@test_value(1.57079632679) T) -> T */
     /* fn sin[N : num, T : f32_f16](@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(385),
+    /* overloads */ OverloadIndex(397),
   },
   {
     /* [75] */
     /* fn sinh[T : f32_f16](T) -> T */
     /* fn sinh[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(387),
+    /* overloads */ OverloadIndex(399),
   },
   {
     /* [76] */
     /* fn smoothstep[T : f32_f16](@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T */
     /* fn smoothstep[N : num, T : f32_f16](@test_value(2) vec<N, T>, @test_value(4) vec<N, T>, @test_value(3) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(389),
+    /* overloads */ OverloadIndex(401),
   },
   {
     /* [77] */
     /* fn sqrt[T : f32_f16](T) -> T */
     /* fn sqrt[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(391),
+    /* overloads */ OverloadIndex(403),
   },
   {
     /* [78] */
     /* fn step[T : f32_f16](T, T) -> T */
     /* fn step[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(393),
+    /* overloads */ OverloadIndex(405),
   },
   {
     /* [79] */
     /* fn storageBarrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(466),
+    /* overloads */ OverloadIndex(474),
   },
   {
     /* [80] */
     /* fn tan[T : f32_f16](T) -> T */
     /* fn tan[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(395),
+    /* overloads */ OverloadIndex(407),
   },
   {
     /* [81] */
     /* fn tanh[T : f32_f16](T) -> T */
     /* fn tanh[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(397),
+    /* overloads */ OverloadIndex(409),
   },
   {
     /* [82] */
     /* fn transpose[M : num, N : num, T : f32_f16](mat<M, N, T>) -> mat<N, M, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(467),
+    /* overloads */ OverloadIndex(475),
   },
   {
     /* [83] */
     /* fn trunc[T : f32_f16](@test_value(1.5) T) -> T */
     /* fn trunc[N : num, T : f32_f16](@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(399),
+    /* overloads */ OverloadIndex(411),
   },
   {
     /* [84] */
     /* fn unpack2x16float(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(468),
+    /* overloads */ OverloadIndex(476),
   },
   {
     /* [85] */
     /* fn unpack2x16snorm(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(469),
+    /* overloads */ OverloadIndex(477),
   },
   {
     /* [86] */
     /* fn unpack2x16unorm(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(470),
+    /* overloads */ OverloadIndex(478),
   },
   {
     /* [87] */
     /* fn unpack4x8snorm(u32) -> vec4<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(471),
+    /* overloads */ OverloadIndex(479),
   },
   {
     /* [88] */
     /* fn unpack4x8unorm(u32) -> vec4<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(472),
+    /* overloads */ OverloadIndex(480),
   },
   {
     /* [89] */
     /* fn unpack4xI8(u32) -> vec4<i32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(473),
+    /* overloads */ OverloadIndex(481),
   },
   {
     /* [90] */
     /* fn unpack4xU8(u32) -> vec4<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(474),
+    /* overloads */ OverloadIndex(482),
   },
   {
     /* [91] */
     /* fn workgroupBarrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(466),
+    /* overloads */ OverloadIndex(474),
   },
   {
     /* [92] */
     /* fn textureBarrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(466),
+    /* overloads */ OverloadIndex(474),
   },
   {
     /* [93] */
@@ -11056,7 +11440,7 @@
     /* fn textureNumLayers(texture: texture_depth_cube_array) -> u32 */
     /* fn textureNumLayers[F : texel_format, A : access](texture: texture_storage_2d_array<F, A>) -> u32 */
     /* num overloads */ 5,
-    /* overloads */ OverloadIndex(243),
+    /* overloads */ OverloadIndex(255),
   },
   {
     /* [97] */
@@ -11078,7 +11462,7 @@
     /* fn textureNumSamples[T : fiu32](texture: texture_multisampled_2d<T>) -> u32 */
     /* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32 */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(401),
+    /* overloads */ OverloadIndex(413),
   },
   {
     /* [99] */
@@ -11172,7 +11556,7 @@
     /* fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
     /* fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(403),
+    /* overloads */ OverloadIndex(415),
   },
   {
     /* [106] */
@@ -11221,270 +11605,278 @@
     /* [108] */
     /* fn inputAttachmentLoad[T : fiu32](input_attachment: input_attachment<T>) -> vec4<T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(475),
+    /* overloads */ OverloadIndex(483),
   },
   {
     /* [109] */
     /* fn atomicLoad[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(476),
+    /* overloads */ OverloadIndex(484),
   },
   {
     /* [110] */
     /* fn atomicStore[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(477),
+    /* overloads */ OverloadIndex(485),
   },
   {
     /* [111] */
     /* fn atomicAdd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [112] */
     /* fn atomicSub[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [113] */
     /* fn atomicMax[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [114] */
     /* fn atomicMin[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [115] */
     /* fn atomicAnd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [116] */
     /* fn atomicOr[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [117] */
     /* fn atomicXor[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [118] */
     /* fn atomicExchange[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(478),
+    /* overloads */ OverloadIndex(486),
   },
   {
     /* [119] */
     /* fn atomicCompareExchangeWeak[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(479),
+    /* overloads */ OverloadIndex(487),
   },
   {
     /* [120] */
     /* fn subgroupBallot(bool) -> vec4<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(480),
+    /* overloads */ OverloadIndex(488),
   },
   {
     /* [121] */
     /* fn subgroupElect() -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(481),
+    /* overloads */ OverloadIndex(489),
   },
   {
     /* [122] */
     /* fn subgroupBroadcast[T : fiu32_f16](value: T, @const sourceLaneIndex: iu32) -> T */
     /* fn subgroupBroadcast[N : num, T : fiu32_f16](value: vec<N, T>, @const sourceLaneIndex: iu32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(405),
+    /* overloads */ OverloadIndex(417),
   },
   {
     /* [123] */
     /* fn subgroupBroadcastFirst[T : fiu32_f16](value: T) -> T */
     /* fn subgroupBroadcastFirst[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [124] */
     /* fn subgroupShuffle[T : fiu32_f16](value: T, sourceLaneIndex: iu32) -> T */
     /* fn subgroupShuffle[N : num, T : fiu32_f16](value: vec<N, T>, sourceLaneIndex: iu32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(405),
+    /* overloads */ OverloadIndex(417),
   },
   {
     /* [125] */
     /* fn subgroupShuffleXor[T : fiu32_f16](value: T, mask: u32) -> T */
     /* fn subgroupShuffleXor[N : num, T : fiu32_f16](value: vec<N, T>, mask: u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [126] */
     /* fn subgroupShuffleUp[T : fiu32_f16](value: T, delta: u32) -> T */
     /* fn subgroupShuffleUp[N : num, T : fiu32_f16](value: vec<N, T>, delta: u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(411),
+    /* overloads */ OverloadIndex(423),
   },
   {
     /* [127] */
     /* fn subgroupShuffleDown[T : fiu32_f16](value: T, delta: u32) -> T */
     /* fn subgroupShuffleDown[N : num, T : fiu32_f16](value: vec<N, T>, delta: u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(411),
+    /* overloads */ OverloadIndex(423),
   },
   {
     /* [128] */
     /* fn subgroupAdd[T : fiu32_f16](value: T) -> T */
     /* fn subgroupAdd[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [129] */
     /* fn subgroupInclusiveAdd[T : fiu32_f16](value: T) -> T */
     /* fn subgroupInclusiveAdd[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [130] */
     /* fn subgroupExclusiveAdd[T : fiu32_f16](value: T) -> T */
     /* fn subgroupExclusiveAdd[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [131] */
     /* fn subgroupMul[T : fiu32_f16](value: T) -> T */
     /* fn subgroupMul[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [132] */
     /* fn subgroupInclusiveMul[T : fiu32_f16](value: T) -> T */
     /* fn subgroupInclusiveMul[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [133] */
     /* fn subgroupExclusiveMul[T : fiu32_f16](value: T) -> T */
     /* fn subgroupExclusiveMul[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [134] */
     /* fn subgroupAnd[T : iu32](value: T) -> T */
     /* fn subgroupAnd[N : num, T : iu32](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(413),
+    /* overloads */ OverloadIndex(425),
   },
   {
     /* [135] */
     /* fn subgroupOr[T : iu32](value: T) -> T */
     /* fn subgroupOr[N : num, T : iu32](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(413),
+    /* overloads */ OverloadIndex(425),
   },
   {
     /* [136] */
     /* fn subgroupXor[T : iu32](value: T) -> T */
     /* fn subgroupXor[N : num, T : iu32](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(413),
+    /* overloads */ OverloadIndex(425),
   },
   {
     /* [137] */
     /* fn subgroupMin[T : fiu32_f16](value: T) -> T */
     /* fn subgroupMin[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [138] */
     /* fn subgroupMax[T : fiu32_f16](value: T) -> T */
     /* fn subgroupMax[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [139] */
     /* fn subgroupAll(bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(482),
+    /* overloads */ OverloadIndex(490),
   },
   {
     /* [140] */
     /* fn subgroupAny(bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(482),
+    /* overloads */ OverloadIndex(490),
   },
   {
     /* [141] */
     /* fn quadBroadcast[T : fiu32_f16](e: T, @const id: iu32) -> T */
     /* fn quadBroadcast[N : num, T : fiu32_f16](e: vec<N, T>, @const id: iu32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(415),
+    /* overloads */ OverloadIndex(427),
   },
   {
     /* [142] */
     /* fn quadSwapX[T : fiu32_f16](e: T) -> T */
     /* fn quadSwapX[N : num, T : fiu32_f16](e: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(417),
+    /* overloads */ OverloadIndex(429),
   },
   {
     /* [143] */
     /* fn quadSwapY[T : fiu32_f16](e: T) -> T */
     /* fn quadSwapY[N : num, T : fiu32_f16](e: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(417),
+    /* overloads */ OverloadIndex(429),
   },
   {
     /* [144] */
     /* fn quadSwapDiagonal[T : fiu32_f16](e: T) -> T */
     /* fn quadSwapDiagonal[N : num, T : fiu32_f16](e: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(417),
+    /* overloads */ OverloadIndex(429),
   },
   {
     /* [145] */
     /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num](ptr<storage, runtime_array<S>, readable>, u32, @const bool, u32) -> T */
     /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<S, AC>, readable>, u32, @const bool, u32) -> T */
-    /* num overloads */ 2,
-    /* overloads */ OverloadIndex(419),
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : i8, C : num, R : num](ptr<storage, runtime_array<i32>, readable>, u32, @const bool, u32) -> T */
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : u8, C : num, R : num](ptr<storage, runtime_array<u32>, readable>, u32, @const bool, u32) -> T */
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : i8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<i32, AC>, readable>, u32, @const bool, u32) -> T */
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : u8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<u32, AC>, readable>, u32, @const bool, u32) -> T */
+    /* num overloads */ 6,
+    /* overloads */ OverloadIndex(189),
   },
   {
     /* [146] */
     /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num](ptr<storage, runtime_array<S>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32) */
     /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<S, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32) */
-    /* num overloads */ 2,
-    /* overloads */ OverloadIndex(421),
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : i8, C : num, R : num](ptr<storage, runtime_array<i32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32) */
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : u8, C : num, R : num](ptr<storage, runtime_array<u32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32) */
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : i8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<i32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32) */
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : u8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<u32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, u32) */
+    /* num overloads */ 6,
+    /* overloads */ OverloadIndex(195),
   },
   {
     /* [147] */
     /* fn subgroupMatrixMultiply<TR : subgroup_matrix_elements>[T : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, T, K, R>, subgroup_matrix<subgroup_matrix_kind_right, T, C, K>) -> subgroup_matrix<subgroup_matrix_kind_result, TR, C, R> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(483),
+    /* overloads */ OverloadIndex(491),
   },
   {
     /* [148] */
     /* fn subgroupMatrixMultiplyAccumulate[T : subgroup_matrix_elements, TR : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, T, K, R>, subgroup_matrix<subgroup_matrix_kind_right, T, C, K>, subgroup_matrix<subgroup_matrix_kind_result, TR, C, R>) -> subgroup_matrix<subgroup_matrix_kind_result, TR, C, R> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(484),
+    /* overloads */ OverloadIndex(492),
   },
 };
 
@@ -11494,21 +11886,21 @@
     /* op !(bool) -> bool */
     /* op ![N : num](vec<N, bool>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(423),
+    /* overloads */ OverloadIndex(431),
   },
   {
     /* [1] */
     /* op ~[T : iu32](T) -> T */
     /* op ~[T : iu32, N : num](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(425),
+    /* overloads */ OverloadIndex(433),
   },
   {
     /* [2] */
     /* op -[T : fi32_f16](T) -> T */
     /* op -[T : fi32_f16, N : num](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(427),
+    /* overloads */ OverloadIndex(435),
   },
 };
 constexpr uint8_t kUnaryOperatorNot = 0;
@@ -11524,7 +11916,7 @@
     /* op +[T : fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* op +[T : f32_f16, N : num, M : num](mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
     /* num overloads */ 5,
-    /* overloads */ OverloadIndex(248),
+    /* overloads */ OverloadIndex(260),
   },
   {
     /* [1] */
@@ -11534,7 +11926,7 @@
     /* op -[T : fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* op -[T : f32_f16, N : num, M : num](mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
     /* num overloads */ 5,
-    /* overloads */ OverloadIndex(253),
+    /* overloads */ OverloadIndex(265),
   },
   {
     /* [2] */
@@ -11557,7 +11949,7 @@
     /* op /[T : fiu32_f16, N : num](vec<N, T>, T) -> vec<N, T> */
     /* op /[T : fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(258),
+    /* overloads */ OverloadIndex(270),
   },
   {
     /* [4] */
@@ -11566,14 +11958,14 @@
     /* op %[T : fiu32_f16, N : num](vec<N, T>, T) -> vec<N, T> */
     /* op %[T : fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(262),
+    /* overloads */ OverloadIndex(274),
   },
   {
     /* [5] */
     /* op ^[T : iu32](T, T) -> T */
     /* op ^[T : iu32, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(429),
+    /* overloads */ OverloadIndex(437),
   },
   {
     /* [6] */
@@ -11582,7 +11974,7 @@
     /* op &[T : iu32](T, T) -> T */
     /* op &[T : iu32, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(266),
+    /* overloads */ OverloadIndex(278),
   },
   {
     /* [7] */
@@ -11591,75 +11983,75 @@
     /* op |[T : iu32](T, T) -> T */
     /* op |[T : iu32, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(270),
+    /* overloads */ OverloadIndex(282),
   },
   {
     /* [8] */
     /* op &&(bool, bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(493),
   },
   {
     /* [9] */
     /* op ||(bool, bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(486),
+    /* overloads */ OverloadIndex(494),
   },
   {
     /* [10] */
     /* op ==[T : scalar](T, T) -> bool */
     /* op ==[T : scalar, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(431),
+    /* overloads */ OverloadIndex(439),
   },
   {
     /* [11] */
     /* op !=[T : scalar](T, T) -> bool */
     /* op !=[T : scalar, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(433),
+    /* overloads */ OverloadIndex(441),
   },
   {
     /* [12] */
     /* op <[T : fiu32_f16](T, T) -> bool */
     /* op <[T : fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(435),
+    /* overloads */ OverloadIndex(443),
   },
   {
     /* [13] */
     /* op >[T : fiu32_f16](T, T) -> bool */
     /* op >[T : fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(437),
+    /* overloads */ OverloadIndex(445),
   },
   {
     /* [14] */
     /* op <=[T : fiu32_f16](T, T) -> bool */
     /* op <=[T : fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(439),
+    /* overloads */ OverloadIndex(447),
   },
   {
     /* [15] */
     /* op >=[T : fiu32_f16](T, T) -> bool */
     /* op >=[T : fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(441),
+    /* overloads */ OverloadIndex(449),
   },
   {
     /* [16] */
     /* op <<[T : iu32](T, u32) -> T */
     /* op <<[T : iu32, N : num](vec<N, T>, vec<N, u32>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(443),
+    /* overloads */ OverloadIndex(451),
   },
   {
     /* [17] */
     /* op >>[T : iu32](T, u32) -> T */
     /* op >>[T : iu32, N : num](vec<N, T>, vec<N, u32>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(445),
+    /* overloads */ OverloadIndex(453),
   },
 };
 constexpr uint8_t kBinaryOperatorPlus = 0;
@@ -11688,7 +12080,7 @@
     /* ctor i32(i32) -> i32 */
     /* conv i32[T : scalar_no_i32](T) -> i32 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(280),
+    /* overloads */ OverloadIndex(292),
   },
   {
     /* [1] */
@@ -11696,7 +12088,7 @@
     /* ctor u32(u32) -> u32 */
     /* conv u32[T : scalar_no_u32](T) -> u32 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(283),
+    /* overloads */ OverloadIndex(295),
   },
   {
     /* [2] */
@@ -11704,7 +12096,7 @@
     /* ctor f32(f32) -> f32 */
     /* conv f32[T : scalar_no_f32](T) -> f32 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(286),
+    /* overloads */ OverloadIndex(298),
   },
   {
     /* [3] */
@@ -11712,7 +12104,7 @@
     /* ctor f16(f16) -> f16 */
     /* conv f16[T : scalar_no_f16](T) -> f16 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(289),
+    /* overloads */ OverloadIndex(301),
   },
   {
     /* [4] */
@@ -11720,7 +12112,7 @@
     /* ctor bool(bool) -> bool */
     /* conv bool[T : scalar_no_bool](T) -> bool */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(292),
+    /* overloads */ OverloadIndex(304),
   },
   {
     /* [5] */
@@ -11781,7 +12173,7 @@
     /* conv mat2x2<T : f16>(mat2x2<f32>) -> mat2x2<T> */
     /* conv mat2x2<T : f32>(mat2x2<f16>) -> mat2x2<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(189),
+    /* overloads */ OverloadIndex(201),
   },
   {
     /* [9] */
@@ -11792,7 +12184,7 @@
     /* conv mat2x3<T : f16>(mat2x3<f32>) -> mat2x3<T> */
     /* conv mat2x3<T : f32>(mat2x3<f16>) -> mat2x3<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(195),
+    /* overloads */ OverloadIndex(207),
   },
   {
     /* [10] */
@@ -11803,7 +12195,7 @@
     /* conv mat2x4<T : f16>(mat2x4<f32>) -> mat2x4<T> */
     /* conv mat2x4<T : f32>(mat2x4<f16>) -> mat2x4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(201),
+    /* overloads */ OverloadIndex(213),
   },
   {
     /* [11] */
@@ -11814,7 +12206,7 @@
     /* conv mat3x2<T : f16>(mat3x2<f32>) -> mat3x2<T> */
     /* conv mat3x2<T : f32>(mat3x2<f16>) -> mat3x2<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(207),
+    /* overloads */ OverloadIndex(219),
   },
   {
     /* [12] */
@@ -11825,7 +12217,7 @@
     /* conv mat3x3<T : f16>(mat3x3<f32>) -> mat3x3<T> */
     /* conv mat3x3<T : f32>(mat3x3<f16>) -> mat3x3<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(213),
+    /* overloads */ OverloadIndex(225),
   },
   {
     /* [13] */
@@ -11836,7 +12228,7 @@
     /* conv mat3x4<T : f16>(mat3x4<f32>) -> mat3x4<T> */
     /* conv mat3x4<T : f32>(mat3x4<f16>) -> mat3x4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(219),
+    /* overloads */ OverloadIndex(231),
   },
   {
     /* [14] */
@@ -11847,7 +12239,7 @@
     /* conv mat4x2<T : f16>(mat4x2<f32>) -> mat4x2<T> */
     /* conv mat4x2<T : f32>(mat4x2<f16>) -> mat4x2<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(225),
+    /* overloads */ OverloadIndex(237),
   },
   {
     /* [15] */
@@ -11858,7 +12250,7 @@
     /* conv mat4x3<T : f16>(mat4x3<f32>) -> mat4x3<T> */
     /* conv mat4x3<T : f32>(mat4x3<f16>) -> mat4x3<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(231),
+    /* overloads */ OverloadIndex(243),
   },
   {
     /* [16] */
@@ -11869,25 +12261,25 @@
     /* conv mat4x4<T : f16>(mat4x4<f32>) -> mat4x4<T> */
     /* conv mat4x4<T : f32>(mat4x4<f16>) -> mat4x4<T> */
     /* num overloads */ 6,
-    /* overloads */ OverloadIndex(237),
+    /* overloads */ OverloadIndex(249),
   },
   {
     /* [17] */
     /* ctor subgroup_matrix_left<T : subgroup_matrix_elements, K : num, R : num>() -> subgroup_matrix<subgroup_matrix_kind_left, T, K, R> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(487),
+    /* overloads */ OverloadIndex(495),
   },
   {
     /* [18] */
     /* ctor subgroup_matrix_right<T : subgroup_matrix_elements, C : num, K : num>() -> subgroup_matrix<subgroup_matrix_kind_right, T, C, K> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(488),
+    /* overloads */ OverloadIndex(496),
   },
   {
     /* [19] */
     /* ctor subgroup_matrix_result<T : subgroup_matrix_elements, C : num, R : num>() -> subgroup_matrix<subgroup_matrix_kind_result, T, C, R> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(489),
+    /* overloads */ OverloadIndex(497),
   },
 };
 
diff --git a/src/tint/lang/core/ir/transform/robustness.cc b/src/tint/lang/core/ir/transform/robustness.cc
index bebbb22..075cb70 100644
--- a/src/tint/lang/core/ir/transform/robustness.cc
+++ b/src/tint/lang/core/ir/transform/robustness.cc
@@ -453,9 +453,13 @@
 
         // Some matrix components types are packed together into a single array element.
         // Take that into account here by scaling the array length to number of components.
-        // TODO(crbug.com/403609083): I8 and U8 will be 4 components per element.
-        TINT_ASSERT((matrix_ty->Type()->IsAnyOf<type::F16, type::F32, type::I32, type::U32>()));
-        uint32_t components_per_element = 1;
+        uint32_t components_per_element = 0;
+        if (matrix_ty->Type()->IsAnyOf<type::I8, type::U8>()) {
+            components_per_element = 4;
+        } else {
+            TINT_ASSERT((matrix_ty->Type()->IsAnyOf<type::F16, type::F32, type::I32, type::U32>()));
+            components_per_element = 1;
+        }
 
         // Get the length of the array (in terms of matrix elements).
         auto* arr_ty = arr->Type()->UnwrapPtr()->As<core::type::Array>();
diff --git a/src/tint/lang/core/ir/transform/robustness_test.cc b/src/tint/lang/core/ir/transform/robustness_test.cc
index f07d30e..f97b1f0 100644
--- a/src/tint/lang/core/ir/transform/robustness_test.cc
+++ b/src/tint/lang/core/ir/transform/robustness_test.cc
@@ -3555,6 +3555,158 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_i8_StorageRuntimeArray_ConstStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<i32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    b.Append(func->Block(), [&] {
+        // Constant stride of 1 should be clamped to 4 even when predication is disabled.
+        auto* load =
+            b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u, true, 1_u);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func():subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %3:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, 1u
+    ret %3
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func():subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %3:u32 = arrayLength %arr
+    %4:u32 = mul %3, 4u
+    %5:u32 = mul 4u, 7u
+    %6:u32 = add 0u, %5
+    %7:u32 = add %6, 4u
+    %8:bool = lte %7, %4
+    %9:ptr<function, subgroup_matrix_result<i8, 8, 4>, read_write> = var undef
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, 4u
+        store %9, %10
+        exit_if  # if_1
+      }
+    }
+    %11:subgroup_matrix_result<i8, 8, 4> = load %9
+    ret %11
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func():subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %3:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, 4u
+    ret %3
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_u8_StorageRuntimeArray_ConstStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<u32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    b.Append(func->Block(), [&] {
+        // Constant stride of 1 should be clamped to 4 even when predication is disabled.
+        auto* load =
+            b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u, true, 1_u);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func():subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %3:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, 1u
+    ret %3
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func():subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %3:u32 = arrayLength %arr
+    %4:u32 = mul %3, 4u
+    %5:u32 = mul 4u, 7u
+    %6:u32 = add 0u, %5
+    %7:u32 = add %6, 4u
+    %8:bool = lte %7, %4
+    %9:ptr<function, subgroup_matrix_result<u8, 8, 4>, read_write> = var undef
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, 4u
+        store %9, %10
+        exit_if  # if_1
+      }
+    }
+    %11:subgroup_matrix_result<u8, 8, 4> = load %9
+    ret %11
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func():subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %3:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, 4u
+    ret %3
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_StorageRuntimeArray_DynamicStride_ColMajor) {
     auto* arr = b.Var("arr", ty.ptr(storage, ty.array<f32>()));
     arr->SetBindingPoint(0, 0);
@@ -3634,6 +3786,166 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_i8_StorageRuntimeArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<i32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u,
+                                    true, stride);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, %stride
+    ret %4
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:u32 = arrayLength %arr
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul %4, 7u
+    %8:u32 = add 0u, %7
+    %9:u32 = add %8, 4u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<i8, 8, 4>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, %4
+        store %11, %12
+        exit_if  # if_1
+      }
+    }
+    %13:subgroup_matrix_result<i8, 8, 4> = load %11
+    ret %13
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, %4
+    ret %5
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_u8_StorageRuntimeArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<u32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u,
+                                    true, stride);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, %stride
+    ret %4
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:u32 = arrayLength %arr
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul %4, 7u
+    %8:u32 = add 0u, %7
+    %9:u32 = add %8, 4u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<u8, 8, 4>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, %4
+        store %11, %12
+        exit_if  # if_1
+      }
+    }
+    %13:subgroup_matrix_result<u8, 8, 4> = load %11
+    ret %13
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, %4
+    ret %5
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_StorageRuntimeArray_DynamicStride_RowMajor) {
     auto* arr = b.Var("arr", ty.ptr(storage, ty.array<f32>()));
     arr->SetBindingPoint(0, 0);
@@ -3713,6 +4025,166 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_i8_StorageRuntimeArray_DynamicStride_RowMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<i32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u,
+                                    false, stride);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, false, %stride
+    ret %4
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 8u
+    %5:u32 = arrayLength %arr
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul %4, 3u
+    %8:u32 = add 0u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<i8, 8, 4>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, false, %4
+        store %11, %12
+        exit_if  # if_1
+      }
+    }
+    %13:subgroup_matrix_result<i8, 8, 4> = load %11
+    ret %13
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 8u
+    %5:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, false, %4
+    ret %5
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_u8_StorageRuntimeArray_DynamicStride_RowMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<u32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u,
+                                    false, stride);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, false, %stride
+    ret %4
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 8u
+    %5:u32 = arrayLength %arr
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul %4, 3u
+    %8:u32 = add 0u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<u8, 8, 4>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, false, %4
+        store %11, %12
+        exit_if  # if_1
+      }
+    }
+    %13:subgroup_matrix_result<u8, 8, 4> = load %11
+    ret %13
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 8u
+    %5:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, false, %4
+    ret %5
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_WorkgroupFixedArray_DynamicStride_ColMajor) {
     auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<f32, 1024>()));
     mod.root_block->Append(arr);
@@ -3790,6 +4262,160 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_i8_WorkgroupFixedArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<i32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u,
+                                    true, stride);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, %stride
+    ret %4
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:u32 = mul %4, 7u
+    %6:u32 = add 0u, %5
+    %7:u32 = add %6, 4u
+    %8:bool = lte %7, 4096u
+    %9:ptr<function, subgroup_matrix_result<i8, 8, 4>, read_write> = var undef
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, %4
+        store %9, %10
+        exit_if  # if_1
+      }
+    }
+    %11:subgroup_matrix_result<i8, 8, 4> = load %9
+    ret %11
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 0u, true, %4
+    ret %5
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_u8_WorkgroupFixedArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<u32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 0_u,
+                                    true, stride);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, %stride
+    ret %4
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:u32 = mul %4, 7u
+    %6:u32 = add 0u, %5
+    %7:u32 = add %6, 4u
+    %8:bool = lte %7, 4096u
+    %9:ptr<function, subgroup_matrix_result<u8, 8, 4>, read_write> = var undef
+    if %8 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, %4
+        store %9, %10
+        exit_if  # if_1
+      }
+    }
+    %11:subgroup_matrix_result<u8, 8, 4> = load %9
+    ret %11
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%stride:u32):subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %4:u32 = max %stride, 4u
+    %5:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 0u, true, %4
+    ret %5
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 // Test that we avoid any predication and clamping for fixed size arrays when all parameters are
 // constant and in-bounds.
 TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_WorkgroupFixedArray_ConstStrideAndOffset) {
@@ -3830,6 +4456,82 @@
     EXPECT_EQ(expect, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_i8_WorkgroupFixedArray_ConstStrideAndOffset) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<i32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    b.Append(func->Block(), [&] {
+        // The final row will start at 1016. Another full stride will take it past the 1024 limit,
+        // but the transform should understand that only 8 elements are accessed on that row.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 920_u,
+                                    false, 32_u);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func():subgroup_matrix_result<i8, 8, 4> {
+  $B2: {
+    %3:subgroup_matrix_result<i8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 4>> %arr, 920u, false, 32u
+    ret %3
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = src;
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(expect, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixLoad_u8_WorkgroupFixedArray_ConstStrideAndOffset) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<u32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", mat);
+    b.Append(func->Block(), [&] {
+        // The final row will start at 1016. Another full stride will take it past the 1024 limit,
+        // but the transform should understand that only 8 elements are accessed on that row.
+        auto* load = b.CallExplicit(mat, BuiltinFn::kSubgroupMatrixLoad, Vector{mat}, arr, 920_u,
+                                    false, 32_u);
+        b.Return(func, load);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func():subgroup_matrix_result<u8, 8, 4> {
+  $B2: {
+    %3:subgroup_matrix_result<u8, 8, 4> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 4>> %arr, 920u, false, 32u
+    ret %3
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = src;
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(expect, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixStore_StorageRuntimeArray_ConstStride_ColMajor) {
     auto* arr = b.Var("arr", ty.ptr(storage, ty.array<f32>()));
     arr->SetBindingPoint(0, 0);
@@ -3903,6 +4605,154 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_i8_StorageRuntimeArray_ConstStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<i32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    func->AppendParam(value);
+    b.Append(func->Block(), [&] {
+        // Constant stride of 1 should be clamped to 4 even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, true, 1_u);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>):void {
+  $B2: {
+    %4:void = subgroupMatrixStore %arr, 0u, %value, true, 1u
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>):void {
+  $B2: {
+    %4:u32 = arrayLength %arr
+    %5:u32 = mul %4, 4u
+    %6:u32 = mul 4u, 7u
+    %7:u32 = add 0u, %6
+    %8:u32 = add %7, 4u
+    %9:bool = lte %8, %5
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:void = subgroupMatrixStore %arr, 0u, %value, true, 4u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>):void {
+  $B2: {
+    %4:void = subgroupMatrixStore %arr, 0u, %value, true, 4u
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_u8_StorageRuntimeArray_ConstStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<u32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    func->AppendParam(value);
+    b.Append(func->Block(), [&] {
+        // Constant stride of 1 should be clamped to 4 even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, true, 1_u);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>):void {
+  $B2: {
+    %4:void = subgroupMatrixStore %arr, 0u, %value, true, 1u
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>):void {
+  $B2: {
+    %4:u32 = arrayLength %arr
+    %5:u32 = mul %4, 4u
+    %6:u32 = mul 4u, 7u
+    %7:u32 = add 0u, %6
+    %8:u32 = add %7, 4u
+    %9:bool = lte %8, %5
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:void = subgroupMatrixStore %arr, 0u, %value, true, 4u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>):void {
+  $B2: {
+    %4:void = subgroupMatrixStore %arr, 0u, %value, true, 4u
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixStore_StorageRuntimeArray_DynamicStride_ColMajor) {
     auto* arr = b.Var("arr", ty.ptr(storage, ty.array<f32>()));
     arr->SetBindingPoint(0, 0);
@@ -3980,6 +4830,162 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_i8_StorageRuntimeArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<i32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(value);
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, true, stride);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:void = subgroupMatrixStore %arr, 0u, %value, true, %stride
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:u32 = arrayLength %arr
+    %7:u32 = mul %6, 4u
+    %8:u32 = mul %5, 7u
+    %9:u32 = add 0u, %8
+    %10:u32 = add %9, 4u
+    %11:bool = lte %10, %7
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_u8_StorageRuntimeArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<u32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(value);
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, true, stride);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:void = subgroupMatrixStore %arr, 0u, %value, true, %stride
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:u32 = arrayLength %arr
+    %7:u32 = mul %6, 4u
+    %8:u32 = mul %5, 7u
+    %9:u32 = add 0u, %8
+    %10:u32 = add %9, 4u
+    %11:bool = lte %10, %7
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixStore_StorageRuntimeArray_DynamicStride_RowMajor) {
     auto* arr = b.Var("arr", ty.ptr(storage, ty.array<f32>()));
     arr->SetBindingPoint(0, 0);
@@ -4057,6 +5063,162 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_i8_StorageRuntimeArray_DynamicStride_RowMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<i32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(value);
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, false, stride);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:void = subgroupMatrixStore %arr, 0u, %value, false, %stride
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 8u
+    %6:u32 = arrayLength %arr
+    %7:u32 = mul %6, 4u
+    %8:u32 = mul %5, 3u
+    %9:u32 = add 0u, %8
+    %10:u32 = add %9, 8u
+    %11:bool = lte %10, %7
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:void = subgroupMatrixStore %arr, 0u, %value, false, %5
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<i32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 8u
+    %6:void = subgroupMatrixStore %arr, 0u, %value, false, %5
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_u8_StorageRuntimeArray_DynamicStride_RowMajor) {
+    auto* arr = b.Var("arr", ty.ptr(storage, ty.array<u32>()));
+    arr->SetBindingPoint(0, 0);
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(value);
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, false, stride);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:void = subgroupMatrixStore %arr, 0u, %value, false, %stride
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 8u
+    %6:u32 = arrayLength %arr
+    %7:u32 = mul %6, 4u
+    %8:u32 = mul %5, 3u
+    %9:u32 = add 0u, %8
+    %10:u32 = add %9, 8u
+    %11:bool = lte %10, %7
+    if %11 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:void = subgroupMatrixStore %arr, 0u, %value, false, %5
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<storage, array<u32>, read_write> = var undef @binding_point(0, 0)
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 8u
+    %6:void = subgroupMatrixStore %arr, 0u, %value, false, %5
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 TEST_P(IR_RobustnessTest, SubgroupMatrixStore_WorkgroupFixedArray_DynamicStride_ColMajor) {
     auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<f32, 1024>()));
     mod.root_block->Append(arr);
@@ -4132,6 +5294,156 @@
     EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_i8_WorkgroupFixedArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<i32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(value);
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, true, stride);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:void = subgroupMatrixStore %arr, 0u, %value, true, %stride
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:u32 = mul %5, 7u
+    %7:u32 = add 0u, %6
+    %8:u32 = add %7, 4u
+    %9:bool = lte %8, 4096u
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_u8_WorkgroupFixedArray_DynamicStride_ColMajor) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<u32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    auto* stride = b.FunctionParam<u32>("stride");
+    func->AppendParam(value);
+    func->AppendParam(stride);
+    b.Append(func->Block(), [&] {
+        // Dynamic stride should be clamped with `max` even when predication is disabled.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 0_u, value, true, stride);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:void = subgroupMatrixStore %arr, 0u, %value, true, %stride
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect_with_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:u32 = mul %5, 7u
+    %7:u32 = add 0u, %6
+    %8:u32 = add %7, 4u
+    %9:bool = lte %8, 4096u
+    if %9 [t: $B3] {  # if_1
+      $B3: {  # true
+        %10:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+)";
+
+    auto* expect_without_predication = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>, %stride:u32):void {
+  $B2: {
+    %5:u32 = max %stride, 4u
+    %6:void = subgroupMatrixStore %arr, 0u, %value, true, %5
+    ret
+  }
+}
+)";
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(GetParam() ? expect_with_predication : expect_without_predication, str());
+}
+
 // Test that we avoid any predication and clamping for fixed size arrays when all parameters are
 // constant and in-bounds.
 TEST_P(IR_RobustnessTest, SubgroupMatrixStore_WorkgroupFixedArray_ConstStrideAndOffset) {
@@ -4173,6 +5485,84 @@
     EXPECT_EQ(expect, str());
 }
 
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_i8_WorkgroupFixedArray_ConstStrideAndOffset) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<i32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.i8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    func->AppendParam(value);
+    b.Append(func->Block(), [&] {
+        // The final row will start at 1016. Another full stride will take it past the 1024 limit,
+        // but the transform should understand that only 8 elements are accessed on that row.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 920_u, value, false, 32_u);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<i8, 8, 4>):void {
+  $B2: {
+    %4:void = subgroupMatrixStore %arr, 920u, %value, false, 32u
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = src;
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(expect, str());
+}
+
+TEST_P(IR_RobustnessTest, SubgroupMatrixStore_u8_WorkgroupFixedArray_ConstStrideAndOffset) {
+    auto* arr = b.Var("arr", ty.ptr(workgroup, ty.array<u32, 1024>()));
+    mod.root_block->Append(arr);
+
+    auto* mat = ty.subgroup_matrix_result(ty.u8(), 8u, 4u);
+
+    auto* func = b.Function("foo", ty.void_());
+    auto* value = b.FunctionParam("value", mat);
+    func->AppendParam(value);
+    b.Append(func->Block(), [&] {
+        // The final row will start at 1016. Another full stride will take it past the 1024 limit,
+        // but the transform should understand that only 8 elements are accessed on that row.
+        b.Call(ty.void_(), BuiltinFn::kSubgroupMatrixStore, arr, 920_u, value, false, 32_u);
+        b.Return(func);
+    });
+
+    auto* src = R"(
+$B1: {  # root
+  %arr:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%foo = func(%value:subgroup_matrix_result<u8, 8, 4>):void {
+  $B2: {
+    %4:void = subgroupMatrixStore %arr, 920u, %value, false, 32u
+    ret
+  }
+}
+)";
+    EXPECT_EQ(src, str());
+
+    auto* expect = src;
+
+    RobustnessConfig cfg;
+    cfg.predicate_subgroup_matrix = GetParam();
+    Run(Robustness, cfg);
+
+    EXPECT_EQ(expect, str());
+}
+
 TEST_F(IR_RobustnessWithIntegerRangeAnalysisTest, AccessArrayWithIndex_MaxBound_Equal_Limit) {
     auto* func = b.Function("func", ty.void_());
     b.Append(func->Block(), [&] {
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc b/src/tint/lang/wgsl/intrinsic/data.cc
index 7b2213c..7c7991b 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc
+++ b/src/tint/lang/wgsl/intrinsic/data.cc
@@ -2073,329 +2073,365 @@
   /* [7] */ MatcherIndex(29),
   /* [8] */ MatcherIndex(18),
   /* [9] */ MatcherIndex(33),
-  /* [10] */ MatcherIndex(1),
-  /* [11] */ MatcherIndex(4),
-  /* [12] */ MatcherIndex(16),
-  /* [13] */ MatcherIndex(0),
+  /* [10] */ MatcherIndex(11),
+  /* [11] */ MatcherIndex(5),
+  /* [12] */ MatcherIndex(15),
+  /* [13] */ MatcherIndex(77),
   /* [14] */ MatcherIndex(29),
-  /* [15] */ MatcherIndex(19),
-  /* [16] */ MatcherIndex(32),
-  /* [17] */ MatcherIndex(0),
-  /* [18] */ MatcherIndex(1),
-  /* [19] */ MatcherIndex(29),
-  /* [20] */ MatcherIndex(20),
-  /* [21] */ MatcherIndex(31),
-  /* [22] */ MatcherIndex(0),
-  /* [23] */ MatcherIndex(14),
-  /* [24] */ MatcherIndex(29),
-  /* [25] */ MatcherIndex(1),
-  /* [26] */ MatcherIndex(31),
+  /* [15] */ MatcherIndex(18),
+  /* [16] */ MatcherIndex(33),
+  /* [17] */ MatcherIndex(12),
+  /* [18] */ MatcherIndex(5),
+  /* [19] */ MatcherIndex(15),
+  /* [20] */ MatcherIndex(1),
+  /* [21] */ MatcherIndex(29),
+  /* [22] */ MatcherIndex(18),
+  /* [23] */ MatcherIndex(33),
+  /* [24] */ MatcherIndex(1),
+  /* [25] */ MatcherIndex(4),
+  /* [26] */ MatcherIndex(16),
   /* [27] */ MatcherIndex(0),
-  /* [28] */ MatcherIndex(14),
-  /* [29] */ MatcherIndex(60),
-  /* [30] */ MatcherIndex(1),
-  /* [31] */ MatcherIndex(2),
-  /* [32] */ MatcherIndex(3),
-  /* [33] */ MatcherIndex(4),
-  /* [34] */ MatcherIndex(29),
-  /* [35] */ MatcherIndex(19),
-  /* [36] */ MatcherIndex(32),
-  /* [37] */ MatcherIndex(2),
-  /* [38] */ MatcherIndex(15),
-  /* [39] */ MatcherIndex(77),
-  /* [40] */ MatcherIndex(29),
-  /* [41] */ MatcherIndex(19),
-  /* [42] */ MatcherIndex(32),
-  /* [43] */ MatcherIndex(1),
-  /* [44] */ MatcherIndex(16),
-  /* [45] */ MatcherIndex(12),
-  /* [46] */ MatcherIndex(60),
-  /* [47] */ MatcherIndex(0),
-  /* [48] */ MatcherIndex(1),
-  /* [49] */ MatcherIndex(2),
-  /* [50] */ MatcherIndex(3),
-  /* [51] */ MatcherIndex(60),
-  /* [52] */ MatcherIndex(8),
-  /* [53] */ MatcherIndex(0),
-  /* [54] */ MatcherIndex(2),
-  /* [55] */ MatcherIndex(3),
-  /* [56] */ MatcherIndex(60),
-  /* [57] */ MatcherIndex(6),
+  /* [28] */ MatcherIndex(29),
+  /* [29] */ MatcherIndex(18),
+  /* [30] */ MatcherIndex(33),
+  /* [31] */ MatcherIndex(11),
+  /* [32] */ MatcherIndex(4),
+  /* [33] */ MatcherIndex(16),
+  /* [34] */ MatcherIndex(12),
+  /* [35] */ MatcherIndex(29),
+  /* [36] */ MatcherIndex(18),
+  /* [37] */ MatcherIndex(33),
+  /* [38] */ MatcherIndex(12),
+  /* [39] */ MatcherIndex(4),
+  /* [40] */ MatcherIndex(16),
+  /* [41] */ MatcherIndex(13),
+  /* [42] */ MatcherIndex(29),
+  /* [43] */ MatcherIndex(19),
+  /* [44] */ MatcherIndex(32),
+  /* [45] */ MatcherIndex(0),
+  /* [46] */ MatcherIndex(1),
+  /* [47] */ MatcherIndex(29),
+  /* [48] */ MatcherIndex(20),
+  /* [49] */ MatcherIndex(31),
+  /* [50] */ MatcherIndex(0),
+  /* [51] */ MatcherIndex(14),
+  /* [52] */ MatcherIndex(29),
+  /* [53] */ MatcherIndex(1),
+  /* [54] */ MatcherIndex(31),
+  /* [55] */ MatcherIndex(0),
+  /* [56] */ MatcherIndex(14),
+  /* [57] */ MatcherIndex(60),
   /* [58] */ MatcherIndex(1),
-  /* [59] */ MatcherIndex(4),
+  /* [59] */ MatcherIndex(2),
   /* [60] */ MatcherIndex(3),
-  /* [61] */ MatcherIndex(60),
-  /* [62] */ MatcherIndex(7),
-  /* [63] */ MatcherIndex(1),
-  /* [64] */ MatcherIndex(2),
-  /* [65] */ MatcherIndex(4),
-  /* [66] */ MatcherIndex(60),
-  /* [67] */ MatcherIndex(8),
-  /* [68] */ MatcherIndex(1),
-  /* [69] */ MatcherIndex(2),
-  /* [70] */ MatcherIndex(3),
-  /* [71] */ MatcherIndex(60),
-  /* [72] */ MatcherIndex(6),
-  /* [73] */ MatcherIndex(0),
-  /* [74] */ MatcherIndex(4),
-  /* [75] */ MatcherIndex(3),
-  /* [76] */ MatcherIndex(60),
-  /* [77] */ MatcherIndex(7),
-  /* [78] */ MatcherIndex(0),
-  /* [79] */ MatcherIndex(2),
-  /* [80] */ MatcherIndex(4),
-  /* [81] */ MatcherIndex(28),
-  /* [82] */ MatcherIndex(0),
-  /* [83] */ MatcherIndex(0),
-  /* [84] */ MatcherIndex(1),
-  /* [85] */ MatcherIndex(28),
-  /* [86] */ MatcherIndex(1),
+  /* [61] */ MatcherIndex(4),
+  /* [62] */ MatcherIndex(29),
+  /* [63] */ MatcherIndex(19),
+  /* [64] */ MatcherIndex(32),
+  /* [65] */ MatcherIndex(2),
+  /* [66] */ MatcherIndex(15),
+  /* [67] */ MatcherIndex(13),
+  /* [68] */ MatcherIndex(29),
+  /* [69] */ MatcherIndex(19),
+  /* [70] */ MatcherIndex(32),
+  /* [71] */ MatcherIndex(11),
+  /* [72] */ MatcherIndex(15),
+  /* [73] */ MatcherIndex(12),
+  /* [74] */ MatcherIndex(29),
+  /* [75] */ MatcherIndex(19),
+  /* [76] */ MatcherIndex(32),
+  /* [77] */ MatcherIndex(12),
+  /* [78] */ MatcherIndex(15),
+  /* [79] */ MatcherIndex(11),
+  /* [80] */ MatcherIndex(29),
+  /* [81] */ MatcherIndex(19),
+  /* [82] */ MatcherIndex(32),
+  /* [83] */ MatcherIndex(1),
+  /* [84] */ MatcherIndex(16),
+  /* [85] */ MatcherIndex(11),
+  /* [86] */ MatcherIndex(60),
   /* [87] */ MatcherIndex(0),
-  /* [88] */ MatcherIndex(2),
-  /* [89] */ MatcherIndex(28),
-  /* [90] */ MatcherIndex(0),
-  /* [91] */ MatcherIndex(1),
-  /* [92] */ MatcherIndex(2),
-  /* [93] */ MatcherIndex(29),
-  /* [94] */ MatcherIndex(20),
-  /* [95] */ MatcherIndex(0),
-  /* [96] */ MatcherIndex(14),
+  /* [88] */ MatcherIndex(1),
+  /* [89] */ MatcherIndex(2),
+  /* [90] */ MatcherIndex(3),
+  /* [91] */ MatcherIndex(29),
+  /* [92] */ MatcherIndex(19),
+  /* [93] */ MatcherIndex(32),
+  /* [94] */ MatcherIndex(11),
+  /* [95] */ MatcherIndex(16),
+  /* [96] */ MatcherIndex(1),
   /* [97] */ MatcherIndex(29),
-  /* [98] */ MatcherIndex(0),
-  /* [99] */ MatcherIndex(1),
-  /* [100] */ MatcherIndex(2),
-  /* [101] */ MatcherIndex(30),
-  /* [102] */ MatcherIndex(0),
-  /* [103] */ MatcherIndex(1),
-  /* [104] */ MatcherIndex(2),
-  /* [105] */ MatcherIndex(28),
-  /* [106] */ MatcherIndex(1),
-  /* [107] */ MatcherIndex(2),
-  /* [108] */ MatcherIndex(0),
-  /* [109] */ MatcherIndex(28),
-  /* [110] */ MatcherIndex(2),
-  /* [111] */ MatcherIndex(3),
-  /* [112] */ MatcherIndex(0),
-  /* [113] */ MatcherIndex(28),
-  /* [114] */ MatcherIndex(1),
-  /* [115] */ MatcherIndex(3),
-  /* [116] */ MatcherIndex(0),
-  /* [117] */ MatcherIndex(28),
-  /* [118] */ MatcherIndex(2),
-  /* [119] */ MatcherIndex(1),
-  /* [120] */ MatcherIndex(0),
-  /* [121] */ MatcherIndex(27),
-  /* [122] */ MatcherIndex(0),
-  /* [123] */ MatcherIndex(1),
-  /* [124] */ MatcherIndex(27),
+  /* [98] */ MatcherIndex(19),
+  /* [99] */ MatcherIndex(32),
+  /* [100] */ MatcherIndex(12),
+  /* [101] */ MatcherIndex(16),
+  /* [102] */ MatcherIndex(9),
+  /* [103] */ MatcherIndex(60),
+  /* [104] */ MatcherIndex(8),
+  /* [105] */ MatcherIndex(0),
+  /* [106] */ MatcherIndex(2),
+  /* [107] */ MatcherIndex(3),
+  /* [108] */ MatcherIndex(60),
+  /* [109] */ MatcherIndex(6),
+  /* [110] */ MatcherIndex(1),
+  /* [111] */ MatcherIndex(4),
+  /* [112] */ MatcherIndex(3),
+  /* [113] */ MatcherIndex(60),
+  /* [114] */ MatcherIndex(7),
+  /* [115] */ MatcherIndex(1),
+  /* [116] */ MatcherIndex(2),
+  /* [117] */ MatcherIndex(4),
+  /* [118] */ MatcherIndex(60),
+  /* [119] */ MatcherIndex(8),
+  /* [120] */ MatcherIndex(1),
+  /* [121] */ MatcherIndex(2),
+  /* [122] */ MatcherIndex(3),
+  /* [123] */ MatcherIndex(60),
+  /* [124] */ MatcherIndex(6),
   /* [125] */ MatcherIndex(0),
-  /* [126] */ MatcherIndex(6),
-  /* [127] */ MatcherIndex(27),
-  /* [128] */ MatcherIndex(1),
-  /* [129] */ MatcherIndex(0),
-  /* [130] */ MatcherIndex(27),
-  /* [131] */ MatcherIndex(1),
-  /* [132] */ MatcherIndex(77),
-  /* [133] */ MatcherIndex(27),
-  /* [134] */ MatcherIndex(1),
-  /* [135] */ MatcherIndex(2),
-  /* [136] */ MatcherIndex(27),
-  /* [137] */ MatcherIndex(1),
-  /* [138] */ MatcherIndex(14),
-  /* [139] */ MatcherIndex(27),
-  /* [140] */ MatcherIndex(1),
-  /* [141] */ MatcherIndex(12),
-  /* [142] */ MatcherIndex(27),
+  /* [126] */ MatcherIndex(4),
+  /* [127] */ MatcherIndex(3),
+  /* [128] */ MatcherIndex(60),
+  /* [129] */ MatcherIndex(7),
+  /* [130] */ MatcherIndex(0),
+  /* [131] */ MatcherIndex(2),
+  /* [132] */ MatcherIndex(4),
+  /* [133] */ MatcherIndex(28),
+  /* [134] */ MatcherIndex(0),
+  /* [135] */ MatcherIndex(0),
+  /* [136] */ MatcherIndex(1),
+  /* [137] */ MatcherIndex(28),
+  /* [138] */ MatcherIndex(1),
+  /* [139] */ MatcherIndex(0),
+  /* [140] */ MatcherIndex(2),
+  /* [141] */ MatcherIndex(28),
+  /* [142] */ MatcherIndex(0),
   /* [143] */ MatcherIndex(1),
-  /* [144] */ MatcherIndex(9),
-  /* [145] */ MatcherIndex(27),
-  /* [146] */ MatcherIndex(0),
-  /* [147] */ MatcherIndex(13),
-  /* [148] */ MatcherIndex(58),
-  /* [149] */ MatcherIndex(0),
-  /* [150] */ MatcherIndex(1),
-  /* [151] */ MatcherIndex(27),
-  /* [152] */ MatcherIndex(0),
-  /* [153] */ MatcherIndex(2),
-  /* [154] */ MatcherIndex(56),
-  /* [155] */ MatcherIndex(0),
-  /* [156] */ MatcherIndex(1),
-  /* [157] */ MatcherIndex(49),
-  /* [158] */ MatcherIndex(0),
-  /* [159] */ MatcherIndex(1),
-  /* [160] */ MatcherIndex(50),
-  /* [161] */ MatcherIndex(0),
-  /* [162] */ MatcherIndex(1),
-  /* [163] */ MatcherIndex(51),
+  /* [144] */ MatcherIndex(2),
+  /* [145] */ MatcherIndex(29),
+  /* [146] */ MatcherIndex(20),
+  /* [147] */ MatcherIndex(0),
+  /* [148] */ MatcherIndex(14),
+  /* [149] */ MatcherIndex(29),
+  /* [150] */ MatcherIndex(0),
+  /* [151] */ MatcherIndex(1),
+  /* [152] */ MatcherIndex(2),
+  /* [153] */ MatcherIndex(30),
+  /* [154] */ MatcherIndex(0),
+  /* [155] */ MatcherIndex(1),
+  /* [156] */ MatcherIndex(2),
+  /* [157] */ MatcherIndex(28),
+  /* [158] */ MatcherIndex(1),
+  /* [159] */ MatcherIndex(2),
+  /* [160] */ MatcherIndex(0),
+  /* [161] */ MatcherIndex(28),
+  /* [162] */ MatcherIndex(2),
+  /* [163] */ MatcherIndex(3),
   /* [164] */ MatcherIndex(0),
-  /* [165] */ MatcherIndex(1),
-  /* [166] */ MatcherIndex(52),
-  /* [167] */ MatcherIndex(0),
-  /* [168] */ MatcherIndex(1),
-  /* [169] */ MatcherIndex(49),
-  /* [170] */ MatcherIndex(1),
-  /* [171] */ MatcherIndex(2),
-  /* [172] */ MatcherIndex(50),
-  /* [173] */ MatcherIndex(1),
-  /* [174] */ MatcherIndex(2),
-  /* [175] */ MatcherIndex(51),
-  /* [176] */ MatcherIndex(1),
-  /* [177] */ MatcherIndex(2),
-  /* [178] */ MatcherIndex(52),
-  /* [179] */ MatcherIndex(1),
-  /* [180] */ MatcherIndex(2),
-  /* [181] */ MatcherIndex(27),
-  /* [182] */ MatcherIndex(2),
-  /* [183] */ MatcherIndex(0),
-  /* [184] */ MatcherIndex(27),
-  /* [185] */ MatcherIndex(1),
-  /* [186] */ MatcherIndex(6),
-  /* [187] */ MatcherIndex(17),
-  /* [188] */ MatcherIndex(14),
-  /* [189] */ MatcherIndex(15),
-  /* [190] */ MatcherIndex(1),
-  /* [191] */ MatcherIndex(57),
-  /* [192] */ MatcherIndex(0),
-  /* [193] */ MatcherIndex(55),
-  /* [194] */ MatcherIndex(0),
-  /* [195] */ MatcherIndex(15),
-  /* [196] */ MatcherIndex(13),
-  /* [197] */ MatcherIndex(17),
-  /* [198] */ MatcherIndex(13),
-  /* [199] */ MatcherIndex(17),
-  /* [200] */ MatcherIndex(11),
-  /* [201] */ MatcherIndex(17),
-  /* [202] */ MatcherIndex(12),
-  /* [203] */ MatcherIndex(37),
+  /* [165] */ MatcherIndex(28),
+  /* [166] */ MatcherIndex(1),
+  /* [167] */ MatcherIndex(3),
+  /* [168] */ MatcherIndex(0),
+  /* [169] */ MatcherIndex(28),
+  /* [170] */ MatcherIndex(2),
+  /* [171] */ MatcherIndex(1),
+  /* [172] */ MatcherIndex(0),
+  /* [173] */ MatcherIndex(27),
+  /* [174] */ MatcherIndex(0),
+  /* [175] */ MatcherIndex(1),
+  /* [176] */ MatcherIndex(27),
+  /* [177] */ MatcherIndex(0),
+  /* [178] */ MatcherIndex(6),
+  /* [179] */ MatcherIndex(27),
+  /* [180] */ MatcherIndex(1),
+  /* [181] */ MatcherIndex(0),
+  /* [182] */ MatcherIndex(27),
+  /* [183] */ MatcherIndex(1),
+  /* [184] */ MatcherIndex(77),
+  /* [185] */ MatcherIndex(27),
+  /* [186] */ MatcherIndex(1),
+  /* [187] */ MatcherIndex(2),
+  /* [188] */ MatcherIndex(27),
+  /* [189] */ MatcherIndex(1),
+  /* [190] */ MatcherIndex(14),
+  /* [191] */ MatcherIndex(27),
+  /* [192] */ MatcherIndex(1),
+  /* [193] */ MatcherIndex(12),
+  /* [194] */ MatcherIndex(27),
+  /* [195] */ MatcherIndex(1),
+  /* [196] */ MatcherIndex(9),
+  /* [197] */ MatcherIndex(27),
+  /* [198] */ MatcherIndex(0),
+  /* [199] */ MatcherIndex(13),
+  /* [200] */ MatcherIndex(58),
+  /* [201] */ MatcherIndex(0),
+  /* [202] */ MatcherIndex(1),
+  /* [203] */ MatcherIndex(27),
   /* [204] */ MatcherIndex(0),
-  /* [205] */ MatcherIndex(15),
-  /* [206] */ MatcherIndex(12),
-  /* [207] */ MatcherIndex(38),
-  /* [208] */ MatcherIndex(0),
-  /* [209] */ MatcherIndex(39),
+  /* [205] */ MatcherIndex(2),
+  /* [206] */ MatcherIndex(56),
+  /* [207] */ MatcherIndex(0),
+  /* [208] */ MatcherIndex(1),
+  /* [209] */ MatcherIndex(49),
   /* [210] */ MatcherIndex(0),
-  /* [211] */ MatcherIndex(40),
-  /* [212] */ MatcherIndex(0),
-  /* [213] */ MatcherIndex(41),
-  /* [214] */ MatcherIndex(0),
-  /* [215] */ MatcherIndex(42),
+  /* [211] */ MatcherIndex(1),
+  /* [212] */ MatcherIndex(50),
+  /* [213] */ MatcherIndex(0),
+  /* [214] */ MatcherIndex(1),
+  /* [215] */ MatcherIndex(51),
   /* [216] */ MatcherIndex(0),
-  /* [217] */ MatcherIndex(43),
-  /* [218] */ MatcherIndex(0),
-  /* [219] */ MatcherIndex(17),
-  /* [220] */ MatcherIndex(0),
-  /* [221] */ MatcherIndex(15),
-  /* [222] */ MatcherIndex(11),
-  /* [223] */ MatcherIndex(16),
-  /* [224] */ MatcherIndex(13),
-  /* [225] */ MatcherIndex(37),
-  /* [226] */ MatcherIndex(13),
-  /* [227] */ MatcherIndex(38),
-  /* [228] */ MatcherIndex(13),
-  /* [229] */ MatcherIndex(39),
-  /* [230] */ MatcherIndex(13),
-  /* [231] */ MatcherIndex(40),
-  /* [232] */ MatcherIndex(13),
-  /* [233] */ MatcherIndex(16),
-  /* [234] */ MatcherIndex(11),
-  /* [235] */ MatcherIndex(41),
-  /* [236] */ MatcherIndex(13),
-  /* [237] */ MatcherIndex(42),
-  /* [238] */ MatcherIndex(13),
-  /* [239] */ MatcherIndex(15),
-  /* [240] */ MatcherIndex(0),
-  /* [241] */ MatcherIndex(16),
-  /* [242] */ MatcherIndex(1),
-  /* [243] */ MatcherIndex(54),
+  /* [217] */ MatcherIndex(1),
+  /* [218] */ MatcherIndex(52),
+  /* [219] */ MatcherIndex(0),
+  /* [220] */ MatcherIndex(1),
+  /* [221] */ MatcherIndex(49),
+  /* [222] */ MatcherIndex(1),
+  /* [223] */ MatcherIndex(2),
+  /* [224] */ MatcherIndex(50),
+  /* [225] */ MatcherIndex(1),
+  /* [226] */ MatcherIndex(2),
+  /* [227] */ MatcherIndex(51),
+  /* [228] */ MatcherIndex(1),
+  /* [229] */ MatcherIndex(2),
+  /* [230] */ MatcherIndex(52),
+  /* [231] */ MatcherIndex(1),
+  /* [232] */ MatcherIndex(2),
+  /* [233] */ MatcherIndex(27),
+  /* [234] */ MatcherIndex(2),
+  /* [235] */ MatcherIndex(0),
+  /* [236] */ MatcherIndex(27),
+  /* [237] */ MatcherIndex(1),
+  /* [238] */ MatcherIndex(6),
+  /* [239] */ MatcherIndex(17),
+  /* [240] */ MatcherIndex(14),
+  /* [241] */ MatcherIndex(57),
+  /* [242] */ MatcherIndex(0),
+  /* [243] */ MatcherIndex(55),
   /* [244] */ MatcherIndex(0),
-  /* [245] */ MatcherIndex(59),
-  /* [246] */ MatcherIndex(0),
-  /* [247] */ MatcherIndex(15),
-  /* [248] */ MatcherIndex(9),
-  /* [249] */ MatcherIndex(16),
-  /* [250] */ MatcherIndex(9),
-  /* [251] */ MatcherIndex(17),
-  /* [252] */ MatcherIndex(9),
-  /* [253] */ MatcherIndex(17),
-  /* [254] */ MatcherIndex(1),
-  /* [255] */ MatcherIndex(18),
+  /* [245] */ MatcherIndex(17),
+  /* [246] */ MatcherIndex(13),
+  /* [247] */ MatcherIndex(17),
+  /* [248] */ MatcherIndex(11),
+  /* [249] */ MatcherIndex(17),
+  /* [250] */ MatcherIndex(12),
+  /* [251] */ MatcherIndex(37),
+  /* [252] */ MatcherIndex(0),
+  /* [253] */ MatcherIndex(38),
+  /* [254] */ MatcherIndex(0),
+  /* [255] */ MatcherIndex(39),
   /* [256] */ MatcherIndex(0),
-  /* [257] */ MatcherIndex(18),
-  /* [258] */ MatcherIndex(13),
-  /* [259] */ MatcherIndex(18),
-  /* [260] */ MatcherIndex(14),
-  /* [261] */ MatcherIndex(19),
+  /* [257] */ MatcherIndex(40),
+  /* [258] */ MatcherIndex(0),
+  /* [259] */ MatcherIndex(41),
+  /* [260] */ MatcherIndex(0),
+  /* [261] */ MatcherIndex(42),
   /* [262] */ MatcherIndex(0),
-  /* [263] */ MatcherIndex(19),
-  /* [264] */ MatcherIndex(13),
-  /* [265] */ MatcherIndex(19),
-  /* [266] */ MatcherIndex(14),
-  /* [267] */ MatcherIndex(20),
+  /* [263] */ MatcherIndex(43),
+  /* [264] */ MatcherIndex(0),
+  /* [265] */ MatcherIndex(17),
+  /* [266] */ MatcherIndex(0),
+  /* [267] */ MatcherIndex(37),
   /* [268] */ MatcherIndex(13),
-  /* [269] */ MatcherIndex(20),
-  /* [270] */ MatcherIndex(14),
-  /* [271] */ MatcherIndex(21),
-  /* [272] */ MatcherIndex(0),
-  /* [273] */ MatcherIndex(21),
+  /* [269] */ MatcherIndex(38),
+  /* [270] */ MatcherIndex(13),
+  /* [271] */ MatcherIndex(39),
+  /* [272] */ MatcherIndex(13),
+  /* [273] */ MatcherIndex(40),
   /* [274] */ MatcherIndex(13),
-  /* [275] */ MatcherIndex(21),
-  /* [276] */ MatcherIndex(14),
-  /* [277] */ MatcherIndex(22),
-  /* [278] */ MatcherIndex(0),
-  /* [279] */ MatcherIndex(22),
-  /* [280] */ MatcherIndex(13),
-  /* [281] */ MatcherIndex(22),
-  /* [282] */ MatcherIndex(14),
-  /* [283] */ MatcherIndex(23),
+  /* [275] */ MatcherIndex(41),
+  /* [276] */ MatcherIndex(13),
+  /* [277] */ MatcherIndex(42),
+  /* [278] */ MatcherIndex(13),
+  /* [279] */ MatcherIndex(15),
+  /* [280] */ MatcherIndex(0),
+  /* [281] */ MatcherIndex(54),
+  /* [282] */ MatcherIndex(0),
+  /* [283] */ MatcherIndex(59),
   /* [284] */ MatcherIndex(0),
-  /* [285] */ MatcherIndex(23),
-  /* [286] */ MatcherIndex(13),
-  /* [287] */ MatcherIndex(23),
-  /* [288] */ MatcherIndex(14),
-  /* [289] */ MatcherIndex(24),
-  /* [290] */ MatcherIndex(0),
-  /* [291] */ MatcherIndex(24),
-  /* [292] */ MatcherIndex(13),
-  /* [293] */ MatcherIndex(24),
-  /* [294] */ MatcherIndex(14),
-  /* [295] */ MatcherIndex(25),
-  /* [296] */ MatcherIndex(0),
-  /* [297] */ MatcherIndex(25),
-  /* [298] */ MatcherIndex(13),
-  /* [299] */ MatcherIndex(25),
-  /* [300] */ MatcherIndex(14),
-  /* [301] */ MatcherIndex(26),
-  /* [302] */ MatcherIndex(0),
-  /* [303] */ MatcherIndex(26),
+  /* [285] */ MatcherIndex(15),
+  /* [286] */ MatcherIndex(9),
+  /* [287] */ MatcherIndex(17),
+  /* [288] */ MatcherIndex(9),
+  /* [289] */ MatcherIndex(17),
+  /* [290] */ MatcherIndex(1),
+  /* [291] */ MatcherIndex(18),
+  /* [292] */ MatcherIndex(0),
+  /* [293] */ MatcherIndex(18),
+  /* [294] */ MatcherIndex(13),
+  /* [295] */ MatcherIndex(18),
+  /* [296] */ MatcherIndex(14),
+  /* [297] */ MatcherIndex(19),
+  /* [298] */ MatcherIndex(0),
+  /* [299] */ MatcherIndex(19),
+  /* [300] */ MatcherIndex(13),
+  /* [301] */ MatcherIndex(19),
+  /* [302] */ MatcherIndex(14),
+  /* [303] */ MatcherIndex(20),
   /* [304] */ MatcherIndex(13),
-  /* [305] */ MatcherIndex(26),
+  /* [305] */ MatcherIndex(20),
   /* [306] */ MatcherIndex(14),
-  /* [307] */ MatcherIndex(69),
-  /* [308] */ MatcherIndex(73),
-  /* [309] */ MatcherIndex(81),
-  /* [310] */ MatcherIndex(75),
-  /* [311] */ MatcherIndex(62),
-  /* [312] */ MatcherIndex(70),
-  /* [313] */ MatcherIndex(61),
-  /* [314] */ MatcherIndex(44),
-  /* [315] */ MatcherIndex(45),
-  /* [316] */ MatcherIndex(46),
-  /* [317] */ MatcherIndex(47),
-  /* [318] */ MatcherIndex(48),
-  /* [319] */ MatcherIndex(53),
-  /* [320] */ MatcherIndex(35),
-  /* [321] */ MatcherIndex(36),
-  /* [322] */ MatcherIndex(10),
-  /* [323] */ MatcherIndex(76),
-  /* [324] */ MatcherIndex(82),
-  /* [325] */ MatcherIndex(74),
-  /* [326] */ MatcherIndex(66),
-  /* [327] */ MatcherIndex(67),
-  /* [328] */ MatcherIndex(64),
-  /* [329] */ MatcherIndex(65),
-  /* [330] */ MatcherIndex(68),
-  /* [331] */ MatcherIndex(63),
-  /* [332] */ MatcherIndex(80),
+  /* [307] */ MatcherIndex(21),
+  /* [308] */ MatcherIndex(0),
+  /* [309] */ MatcherIndex(21),
+  /* [310] */ MatcherIndex(13),
+  /* [311] */ MatcherIndex(21),
+  /* [312] */ MatcherIndex(14),
+  /* [313] */ MatcherIndex(22),
+  /* [314] */ MatcherIndex(0),
+  /* [315] */ MatcherIndex(22),
+  /* [316] */ MatcherIndex(13),
+  /* [317] */ MatcherIndex(22),
+  /* [318] */ MatcherIndex(14),
+  /* [319] */ MatcherIndex(23),
+  /* [320] */ MatcherIndex(0),
+  /* [321] */ MatcherIndex(23),
+  /* [322] */ MatcherIndex(13),
+  /* [323] */ MatcherIndex(23),
+  /* [324] */ MatcherIndex(14),
+  /* [325] */ MatcherIndex(24),
+  /* [326] */ MatcherIndex(0),
+  /* [327] */ MatcherIndex(24),
+  /* [328] */ MatcherIndex(13),
+  /* [329] */ MatcherIndex(24),
+  /* [330] */ MatcherIndex(14),
+  /* [331] */ MatcherIndex(25),
+  /* [332] */ MatcherIndex(0),
+  /* [333] */ MatcherIndex(25),
+  /* [334] */ MatcherIndex(13),
+  /* [335] */ MatcherIndex(25),
+  /* [336] */ MatcherIndex(14),
+  /* [337] */ MatcherIndex(26),
+  /* [338] */ MatcherIndex(0),
+  /* [339] */ MatcherIndex(26),
+  /* [340] */ MatcherIndex(13),
+  /* [341] */ MatcherIndex(26),
+  /* [342] */ MatcherIndex(14),
+  /* [343] */ MatcherIndex(69),
+  /* [344] */ MatcherIndex(73),
+  /* [345] */ MatcherIndex(81),
+  /* [346] */ MatcherIndex(75),
+  /* [347] */ MatcherIndex(62),
+  /* [348] */ MatcherIndex(70),
+  /* [349] */ MatcherIndex(61),
+  /* [350] */ MatcherIndex(44),
+  /* [351] */ MatcherIndex(45),
+  /* [352] */ MatcherIndex(46),
+  /* [353] */ MatcherIndex(47),
+  /* [354] */ MatcherIndex(48),
+  /* [355] */ MatcherIndex(53),
+  /* [356] */ MatcherIndex(35),
+  /* [357] */ MatcherIndex(36),
+  /* [358] */ MatcherIndex(10),
+  /* [359] */ MatcherIndex(76),
+  /* [360] */ MatcherIndex(82),
+  /* [361] */ MatcherIndex(74),
+  /* [362] */ MatcherIndex(66),
+  /* [363] */ MatcherIndex(67),
+  /* [364] */ MatcherIndex(64),
+  /* [365] */ MatcherIndex(65),
+  /* [366] */ MatcherIndex(68),
+  /* [367] */ MatcherIndex(63),
+  /* [368] */ MatcherIndex(80),
 };
 
 static_assert(MatcherIndicesIndex::CanIndex(kMatcherIndices),
@@ -2405,152 +2441,152 @@
   {
     /* [0] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(24),
+    /* matcher_indices */ MatcherIndicesIndex(52),
   },
   {
     /* [1] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [2] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [3] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [4] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [5] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [6] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [7] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [8] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [9] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [10] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [11] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [12] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [13] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [14] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [15] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [16] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [17] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [18] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [19] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(229),
+    /* matcher_indices */ MatcherIndicesIndex(271),
   },
   {
     /* [20] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [21] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [22] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [23] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [24] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [25] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [26] */
     /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [27] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(209),
+    /* matcher_indices */ MatcherIndicesIndex(255),
   },
   {
     /* [28] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [29] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [30] */
@@ -2560,262 +2596,262 @@
   {
     /* [31] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [32] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(315),
+    /* matcher_indices */ MatcherIndicesIndex(351),
   },
   {
     /* [33] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(321),
+    /* matcher_indices */ MatcherIndicesIndex(357),
   },
   {
     /* [34] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [35] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [36] */
     /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [37] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [38] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(229),
+    /* matcher_indices */ MatcherIndicesIndex(271),
   },
   {
     /* [39] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [40] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [41] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [42] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [43] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [44] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(227),
+    /* matcher_indices */ MatcherIndicesIndex(269),
   },
   {
     /* [45] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [46] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [47] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [48] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [49] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [50] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(231),
+    /* matcher_indices */ MatcherIndicesIndex(273),
   },
   {
     /* [51] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [52] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [53] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [54] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [55] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(233),
+    /* matcher_indices */ MatcherIndicesIndex(84),
   },
   {
     /* [56] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(237),
+    /* matcher_indices */ MatcherIndicesIndex(277),
   },
   {
     /* [57] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [58] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [59] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [60] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [61] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [62] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(229),
+    /* matcher_indices */ MatcherIndicesIndex(271),
   },
   {
     /* [63] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [64] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [65] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [66] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [67] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [68] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(315),
+    /* matcher_indices */ MatcherIndicesIndex(351),
   },
   {
     /* [69] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [70] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [71] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [72] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [73] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [74] */
     /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [75] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(207),
+    /* matcher_indices */ MatcherIndicesIndex(253),
   },
   {
     /* [76] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [77] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [78] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [79] */
     /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [80] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(215),
+    /* matcher_indices */ MatcherIndicesIndex(261),
   },
   {
     /* [81] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [82] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [83] */
@@ -2825,1768 +2861,1948 @@
   {
     /* [84] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(315),
+    /* matcher_indices */ MatcherIndicesIndex(351),
   },
   {
     /* [85] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [86] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [87] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [88] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [89] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(314),
+    /* matcher_indices */ MatcherIndicesIndex(350),
   },
   {
     /* [90] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(321),
+    /* matcher_indices */ MatcherIndicesIndex(357),
   },
   {
     /* [91] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [92] */
     /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [93] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [94] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(317),
+    /* matcher_indices */ MatcherIndicesIndex(353),
   },
   {
     /* [95] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(321),
+    /* matcher_indices */ MatcherIndicesIndex(357),
   },
   {
     /* [96] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [97] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [98] */
     /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [99] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(229),
+    /* matcher_indices */ MatcherIndicesIndex(271),
   },
   {
     /* [100] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [101] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [102] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [103] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [104] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(227),
+    /* matcher_indices */ MatcherIndicesIndex(269),
   },
   {
     /* [105] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [106] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [107] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [108] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [109] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(231),
+    /* matcher_indices */ MatcherIndicesIndex(273),
   },
   {
     /* [110] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [111] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [112] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [113] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(233),
+    /* matcher_indices */ MatcherIndicesIndex(84),
   },
   {
     /* [114] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(237),
+    /* matcher_indices */ MatcherIndicesIndex(277),
   },
   {
     /* [115] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [116] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [117] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [118] */
     /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [119] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(235),
+    /* matcher_indices */ MatcherIndicesIndex(275),
   },
   {
     /* [120] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [121] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [122] */
     /* usage */ core::ParameterUsage::kDdx,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [123] */
     /* usage */ core::ParameterUsage::kDdy,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [124] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(227),
+    /* matcher_indices */ MatcherIndicesIndex(269),
   },
   {
     /* [125] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [126] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [127] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [128] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [129] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(231),
+    /* matcher_indices */ MatcherIndicesIndex(273),
   },
   {
     /* [130] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [131] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [132] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [133] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(233),
+    /* matcher_indices */ MatcherIndicesIndex(84),
   },
   {
     /* [134] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(237),
+    /* matcher_indices */ MatcherIndicesIndex(277),
   },
   {
     /* [135] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [136] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [137] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [138] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [139] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(314),
+    /* matcher_indices */ MatcherIndicesIndex(350),
   },
   {
     /* [140] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [141] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [142] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [143] */
     /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
+    /* matcher_indices */ MatcherIndicesIndex(78),
   },
   {
     /* [144] */
     /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(317),
+    /* matcher_indices */ MatcherIndicesIndex(353),
   },
   {
     /* [145] */
     /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
     /* [146] */
     /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
     /* [147] */
     /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* matcher_indices */ MatcherIndicesIndex(27),
   },
   {
     /* [148] */
     /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* matcher_indices */ MatcherIndicesIndex(20),
   },
   {
     /* [149] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(40),
+    /* matcher_indices */ MatcherIndicesIndex(80),
   },
   {
     /* [150] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [151] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(46),
+    /* matcher_indices */ MatcherIndicesIndex(86),
   },
   {
     /* [152] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
+    /* matcher_indices */ MatcherIndicesIndex(109),
   },
   {
     /* [153] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [154] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(7),
+    /* matcher_indices */ MatcherIndicesIndex(21),
   },
   {
     /* [155] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [156] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(46),
+    /* matcher_indices */ MatcherIndicesIndex(86),
   },
   {
     /* [157] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
+    /* matcher_indices */ MatcherIndicesIndex(109),
   },
   {
     /* [158] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [159] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
+    /* matcher_indices */ MatcherIndicesIndex(91),
   },
   {
     /* [160] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [161] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(86),
   },
   {
     /* [162] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* matcher_indices */ MatcherIndicesIndex(109),
   },
   {
     /* [163] */
-    /* usage */ core::ParameterUsage::kComponent,
-    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
     /* [164] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(213),
-  },
-  {
-    /* [165] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [166] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
-  },
-  {
-    /* [167] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(314),
-  },
-  {
-    /* [168] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [169] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
-  },
-  {
-    /* [170] */
-    /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
-  },
-  {
-    /* [171] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(316),
-  },
-  {
-    /* [172] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(321),
-  },
-  {
-    /* [173] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
-  },
-  {
-    /* [174] */
-    /* usage */ core::ParameterUsage::kDepthRef,
-    /* matcher_indices */ MatcherIndicesIndex(147),
-  },
-  {
-    /* [175] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(227),
-  },
-  {
-    /* [176] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [177] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
-  },
-  {
-    /* [178] */
-    /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(221),
-  },
-  {
-    /* [179] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(231),
-  },
-  {
-    /* [180] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [181] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
-  },
-  {
-    /* [182] */
-    /* usage */ core::ParameterUsage::kOffset,
-    /* matcher_indices */ MatcherIndicesIndex(233),
-  },
-  {
-    /* [183] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(235),
-  },
-  {
-    /* [184] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [185] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
-  },
-  {
-    /* [186] */
-    /* usage */ core::ParameterUsage::kBias,
-    /* matcher_indices */ MatcherIndicesIndex(147),
-  },
-  {
-    /* [187] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(235),
-  },
-  {
-    /* [188] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [189] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
-  },
-  {
-    /* [190] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(147),
-  },
-  {
-    /* [191] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(316),
-  },
-  {
-    /* [192] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [193] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(223),
-  },
-  {
-    /* [194] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [195] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(175),
-  },
-  {
-    /* [196] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [197] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(32),
-  },
-  {
-    /* [198] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(197),
-  },
-  {
-    /* [199] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(175),
-  },
-  {
-    /* [200] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [201] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(32),
-  },
-  {
-    /* [202] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(199),
-  },
-  {
-    /* [203] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(175),
-  },
-  {
-    /* [204] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [205] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(32),
-  },
-  {
-    /* [206] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(201),
-  },
-  {
-    /* [207] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(209),
-  },
-  {
-    /* [208] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(189),
-  },
-  {
-    /* [209] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [210] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(32),
-  },
-  {
-    /* [211] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(315),
-  },
-  {
-    /* [212] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [213] */
-    /* usage */ core::ParameterUsage::kArrayIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [214] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [215] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(34),
-  },
-  {
-    /* [216] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [217] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
-  },
-  {
-    /* [218] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [219] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(0),
-  },
-  {
-    /* [220] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [221] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
-  },
-  {
-    /* [222] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [223] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [224] */
-    /* usage */ core::ParameterUsage::kY,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [225] */
-    /* usage */ core::ParameterUsage::kZ,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [226] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [227] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [228] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [229] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [230] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [231] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [232] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [233] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [234] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [235] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(219),
-  },
-  {
-    /* [236] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(219),
-  },
-  {
-    /* [237] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(219),
-  },
-  {
-    /* [238] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(219),
-  },
-  {
-    /* [239] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(127),
-  },
-  {
-    /* [240] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(127),
-  },
-  {
-    /* [241] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(127),
-  },
-  {
-    /* [242] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
-  },
-  {
-    /* [243] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
-  },
-  {
-    /* [244] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [245] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [246] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [247] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [248] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [249] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [250] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(57),
-  },
-  {
-    /* [251] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [252] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [253] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(124),
-  },
-  {
-    /* [254] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(124),
-  },
-  {
-    /* [255] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(225),
-  },
-  {
-    /* [256] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [257] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(147),
-  },
-  {
-    /* [258] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(319),
-  },
-  {
-    /* [259] */
-    /* usage */ core::ParameterUsage::kSampler,
-    /* matcher_indices */ MatcherIndicesIndex(320),
-  },
-  {
-    /* [260] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(195),
-  },
-  {
-    /* [261] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(169),
-  },
-  {
-    /* [262] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [263] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(197),
-  },
-  {
-    /* [264] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(172),
-  },
-  {
-    /* [265] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [266] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(197),
-  },
-  {
-    /* [267] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(178),
-  },
-  {
-    /* [268] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [269] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(197),
-  },
-  {
-    /* [270] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(169),
-  },
-  {
-    /* [271] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [272] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(199),
-  },
-  {
-    /* [273] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(172),
-  },
-  {
-    /* [274] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [275] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(199),
-  },
-  {
-    /* [276] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(178),
-  },
-  {
-    /* [277] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [278] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(199),
-  },
-  {
-    /* [279] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(169),
-  },
-  {
-    /* [280] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [281] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(201),
-  },
-  {
-    /* [282] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(172),
-  },
-  {
-    /* [283] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [284] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(201),
-  },
-  {
-    /* [285] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(178),
-  },
-  {
-    /* [286] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [287] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(201),
-  },
-  {
-    /* [288] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(203),
-  },
-  {
-    /* [289] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [290] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [291] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(207),
-  },
-  {
-    /* [292] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(189),
-  },
-  {
-    /* [293] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [294] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(211),
-  },
-  {
-    /* [295] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(241),
-  },
-  {
-    /* [296] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [297] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(217),
-  },
-  {
-    /* [298] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(189),
-  },
-  {
-    /* [299] */
-    /* usage */ core::ParameterUsage::kSampleIndex,
-    /* matcher_indices */ MatcherIndicesIndex(3),
-  },
-  {
-    /* [300] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(314),
-  },
-  {
-    /* [301] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [302] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [303] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(318),
-  },
-  {
-    /* [304] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [305] */
-    /* usage */ core::ParameterUsage::kSampleIndex,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [306] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(71),
-  },
-  {
-    /* [307] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(76),
-  },
-  {
-    /* [308] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(66),
-  },
-  {
-    /* [309] */
-    /* usage */ core::ParameterUsage::kXy,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [310] */
-    /* usage */ core::ParameterUsage::kZ,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [311] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [312] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [313] */
-    /* usage */ core::ParameterUsage::kYz,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [314] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [315] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [316] */
-    /* usage */ core::ParameterUsage::kY,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [317] */
-    /* usage */ core::ParameterUsage::kZw,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [318] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [319] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [320] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [321] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(151),
-  },
-  {
-    /* [322] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(203),
-  },
-  {
-    /* [323] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [324] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(207),
-  },
-  {
-    /* [325] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [326] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(209),
-  },
-  {
-    /* [327] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [328] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(211),
-  },
-  {
-    /* [329] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [330] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(213),
-  },
-  {
-    /* [331] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [332] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(215),
-  },
-  {
-    /* [333] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(10),
-  },
-  {
-    /* [334] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(314),
-  },
-  {
-    /* [335] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [336] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(315),
-  },
-  {
-    /* [337] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [338] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(316),
-  },
-  {
-    /* [339] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [340] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(317),
-  },
-  {
-    /* [341] */
-    /* usage */ core::ParameterUsage::kLevel,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [342] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(319),
-  },
-  {
-    /* [343] */
-    /* usage */ core::ParameterUsage::kCoords,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [344] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [345] */
-    /* usage */ core::ParameterUsage::kSourceLaneIndex,
-    /* matcher_indices */ MatcherIndicesIndex(309),
-  },
-  {
-    /* [346] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [347] */
-    /* usage */ core::ParameterUsage::kSourceLaneIndex,
-    /* matcher_indices */ MatcherIndicesIndex(309),
-  },
-  {
-    /* [348] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [349] */
-    /* usage */ core::ParameterUsage::kMask,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [350] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [351] */
-    /* usage */ core::ParameterUsage::kMask,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [352] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [353] */
-    /* usage */ core::ParameterUsage::kDelta,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [354] */
-    /* usage */ core::ParameterUsage::kValue,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [355] */
-    /* usage */ core::ParameterUsage::kDelta,
-    /* matcher_indices */ MatcherIndicesIndex(45),
-  },
-  {
-    /* [356] */
-    /* usage */ core::ParameterUsage::kE,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [357] */
-    /* usage */ core::ParameterUsage::kId,
-    /* matcher_indices */ MatcherIndicesIndex(309),
-  },
-  {
-    /* [358] */
-    /* usage */ core::ParameterUsage::kE,
-    /* matcher_indices */ MatcherIndicesIndex(121),
-  },
-  {
-    /* [359] */
-    /* usage */ core::ParameterUsage::kId,
-    /* matcher_indices */ MatcherIndicesIndex(309),
-  },
-  {
-    /* [360] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(56),
-  },
-  {
-    /* [361] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(61),
-  },
-  {
-    /* [362] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(127),
-  },
-  {
-    /* [363] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [364] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(127),
-  },
-  {
-    /* [365] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(139),
-  },
-  {
-    /* [366] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(105),
-  },
-  {
-    /* [367] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(105),
-  },
-  {
-    /* [368] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [369] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(105),
-  },
-  {
-    /* [370] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(127),
-  },
-  {
-    /* [371] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(181),
-  },
-  {
-    /* [372] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(105),
-  },
-  {
-    /* [373] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(113),
-  },
-  {
-    /* [374] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(117),
-  },
-  {
-    /* [375] */
-    /* usage */ core::ParameterUsage::kXy,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [376] */
-    /* usage */ core::ParameterUsage::kZw,
-    /* matcher_indices */ MatcherIndicesIndex(239),
-  },
-  {
-    /* [377] */
-    /* usage */ core::ParameterUsage::kXyz,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [378] */
-    /* usage */ core::ParameterUsage::kW,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [379] */
-    /* usage */ core::ParameterUsage::kX,
-    /* matcher_indices */ MatcherIndicesIndex(13),
-  },
-  {
-    /* [380] */
-    /* usage */ core::ParameterUsage::kZyw,
-    /* matcher_indices */ MatcherIndicesIndex(12),
-  },
-  {
-    /* [381] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(14),
-  },
-  {
-    /* [382] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(6),
-  },
-  {
-    /* [383] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(133),
-  },
-  {
-    /* [384] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(136),
-  },
-  {
-    /* [385] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(144),
-  },
-  {
-    /* [386] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(142),
-  },
-  {
-    /* [387] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(5),
-  },
-  {
-    /* [388] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(187),
-  },
-  {
-    /* [389] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(189),
-  },
-  {
-    /* [390] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(81),
-  },
-  {
-    /* [391] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(147),
-  },
-  {
-    /* [392] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(145),
-  },
-  {
-    /* [393] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(195),
-  },
-  {
-    /* [394] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(197),
-  },
-  {
-    /* [395] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(199),
-  },
-  {
-    /* [396] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(201),
-  },
-  {
-    /* [397] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(89),
-  },
-  {
-    /* [398] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(93),
-  },
-  {
-    /* [399] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(19),
-  },
-  {
-    /* [400] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(157),
-  },
-  {
-    /* [401] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(160),
-  },
-  {
-    /* [402] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(163),
-  },
-  {
-    /* [403] */
-    /* usage */ core::ParameterUsage::kTexture,
-    /* matcher_indices */ MatcherIndicesIndex(166),
-  },
-  {
-    /* [404] */
-    /* usage */ core::ParameterUsage::kInputAttachment,
-    /* matcher_indices */ MatcherIndicesIndex(243),
-  },
-  {
-    /* [405] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(101),
-  },
-  {
-    /* [406] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(97),
   },
   {
-    /* [407] */
+    /* [165] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(200),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
-    /* [408] */
+    /* [166] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(241),
+    /* matcher_indices */ MatcherIndicesIndex(86),
   },
   {
-    /* [409] */
+    /* [167] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(253),
+    /* matcher_indices */ MatcherIndicesIndex(109),
   },
   {
-    /* [410] */
+    /* [168] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(255),
+    /* matcher_indices */ MatcherIndicesIndex(17),
   },
   {
-    /* [411] */
+    /* [169] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(257),
+    /* matcher_indices */ MatcherIndicesIndex(28),
   },
   {
-    /* [412] */
+    /* [170] */
     /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [171] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(86),
+  },
+  {
+    /* [172] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [173] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [174] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(35),
+  },
+  {
+    /* [175] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [176] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(86),
+  },
+  {
+    /* [177] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [178] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [179] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [180] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [181] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [182] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [183] */
+    /* usage */ core::ParameterUsage::kComponent,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [184] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(259),
   },
   {
-    /* [413] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(261),
+    /* [185] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
-    /* [414] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(263),
+    /* [186] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(40),
   },
   {
-    /* [415] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(265),
+    /* [187] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(350),
   },
   {
-    /* [416] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(94),
+    /* [188] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
-    /* [417] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(267),
+    /* [189] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
-    /* [418] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [190] */
+    /* usage */ core::ParameterUsage::kOffset,
+    /* matcher_indices */ MatcherIndicesIndex(78),
+  },
+  {
+    /* [191] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(352),
+  },
+  {
+    /* [192] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(357),
+  },
+  {
+    /* [193] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [194] */
+    /* usage */ core::ParameterUsage::kDepthRef,
+    /* matcher_indices */ MatcherIndicesIndex(41),
+  },
+  {
+    /* [195] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(269),
   },
   {
-    /* [419] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(271),
+    /* [196] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
-    /* [420] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [197] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(66),
+  },
+  {
+    /* [198] */
+    /* usage */ core::ParameterUsage::kOffset,
+    /* matcher_indices */ MatcherIndicesIndex(78),
+  },
+  {
+    /* [199] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(273),
   },
   {
-    /* [421] */
-    /* usage */ core::ParameterUsage::kNone,
+    /* [200] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
+  },
+  {
+    /* [201] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [202] */
+    /* usage */ core::ParameterUsage::kOffset,
+    /* matcher_indices */ MatcherIndicesIndex(84),
+  },
+  {
+    /* [203] */
+    /* usage */ core::ParameterUsage::kTexture,
     /* matcher_indices */ MatcherIndicesIndex(275),
   },
   {
-    /* [422] */
-    /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(277),
+    /* [204] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
   },
   {
-    /* [423] */
+    /* [205] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [206] */
+    /* usage */ core::ParameterUsage::kBias,
+    /* matcher_indices */ MatcherIndicesIndex(41),
+  },
+  {
+    /* [207] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(275),
+  },
+  {
+    /* [208] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
+  },
+  {
+    /* [209] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [210] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(41),
+  },
+  {
+    /* [211] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(352),
+  },
+  {
+    /* [212] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
+  },
+  {
+    /* [213] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(40),
+  },
+  {
+    /* [214] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [215] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(227),
+  },
+  {
+    /* [216] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [217] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(60),
+  },
+  {
+    /* [218] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(245),
+  },
+  {
+    /* [219] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(227),
+  },
+  {
+    /* [220] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [221] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(60),
+  },
+  {
+    /* [222] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(247),
+  },
+  {
+    /* [223] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(227),
+  },
+  {
+    /* [224] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [225] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(60),
+  },
+  {
+    /* [226] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(249),
+  },
+  {
+    /* [227] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(255),
+  },
+  {
+    /* [228] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [229] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [230] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(60),
+  },
+  {
+    /* [231] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(351),
+  },
+  {
+    /* [232] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [233] */
+    /* usage */ core::ParameterUsage::kArrayIndex,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [234] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [235] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(62),
+  },
+  {
+    /* [236] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [237] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [238] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [239] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(0),
+  },
+  {
+    /* [240] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [241] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [242] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [243] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(68),
+  },
+  {
+    /* [244] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [245] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [246] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [247] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(74),
+  },
+  {
+    /* [248] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [249] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [250] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [251] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(7),
+  },
+  {
+    /* [252] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [253] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [254] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [255] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(14),
+  },
+  {
+    /* [256] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [257] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [258] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [259] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [260] */
+    /* usage */ core::ParameterUsage::kY,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [261] */
+    /* usage */ core::ParameterUsage::kZ,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [262] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [263] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(279),
   },
   {
+    /* [264] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [265] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [266] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [267] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [268] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [269] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [270] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [271] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(265),
+  },
+  {
+    /* [272] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(265),
+  },
+  {
+    /* [273] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(265),
+  },
+  {
+    /* [274] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(265),
+  },
+  {
+    /* [275] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(179),
+  },
+  {
+    /* [276] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(179),
+  },
+  {
+    /* [277] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(179),
+  },
+  {
+    /* [278] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [279] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [280] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [281] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [282] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [283] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [284] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [285] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [286] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(109),
+  },
+  {
+    /* [287] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [288] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [289] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [290] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(176),
+  },
+  {
+    /* [291] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(267),
+  },
+  {
+    /* [292] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
+  },
+  {
+    /* [293] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(41),
+  },
+  {
+    /* [294] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(355),
+  },
+  {
+    /* [295] */
+    /* usage */ core::ParameterUsage::kSampler,
+    /* matcher_indices */ MatcherIndicesIndex(356),
+  },
+  {
+    /* [296] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(66),
+  },
+  {
+    /* [297] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(221),
+  },
+  {
+    /* [298] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [299] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(245),
+  },
+  {
+    /* [300] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(224),
+  },
+  {
+    /* [301] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [302] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(245),
+  },
+  {
+    /* [303] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(230),
+  },
+  {
+    /* [304] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [305] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(245),
+  },
+  {
+    /* [306] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(221),
+  },
+  {
+    /* [307] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [308] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(247),
+  },
+  {
+    /* [309] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(224),
+  },
+  {
+    /* [310] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [311] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(247),
+  },
+  {
+    /* [312] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(230),
+  },
+  {
+    /* [313] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [314] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(247),
+  },
+  {
+    /* [315] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(221),
+  },
+  {
+    /* [316] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [317] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(249),
+  },
+  {
+    /* [318] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(224),
+  },
+  {
+    /* [319] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [320] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(249),
+  },
+  {
+    /* [321] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(230),
+  },
+  {
+    /* [322] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [323] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(249),
+  },
+  {
+    /* [324] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(251),
+  },
+  {
+    /* [325] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [326] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [327] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(253),
+  },
+  {
+    /* [328] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [329] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [330] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(257),
+  },
+  {
+    /* [331] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(95),
+  },
+  {
+    /* [332] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [333] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(263),
+  },
+  {
+    /* [334] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(19),
+  },
+  {
+    /* [335] */
+    /* usage */ core::ParameterUsage::kSampleIndex,
+    /* matcher_indices */ MatcherIndicesIndex(3),
+  },
+  {
+    /* [336] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(350),
+  },
+  {
+    /* [337] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [338] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [339] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(354),
+  },
+  {
+    /* [340] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [341] */
+    /* usage */ core::ParameterUsage::kSampleIndex,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [342] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(123),
+  },
+  {
+    /* [343] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(128),
+  },
+  {
+    /* [344] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(118),
+  },
+  {
+    /* [345] */
+    /* usage */ core::ParameterUsage::kXy,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [346] */
+    /* usage */ core::ParameterUsage::kZ,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [347] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [348] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [349] */
+    /* usage */ core::ParameterUsage::kYz,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [350] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [351] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [352] */
+    /* usage */ core::ParameterUsage::kY,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [353] */
+    /* usage */ core::ParameterUsage::kZw,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [354] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [355] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [356] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [357] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(203),
+  },
+  {
+    /* [358] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(251),
+  },
+  {
+    /* [359] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [360] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(253),
+  },
+  {
+    /* [361] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [362] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(255),
+  },
+  {
+    /* [363] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [364] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(257),
+  },
+  {
+    /* [365] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [366] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(259),
+  },
+  {
+    /* [367] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [368] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(261),
+  },
+  {
+    /* [369] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(20),
+  },
+  {
+    /* [370] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(350),
+  },
+  {
+    /* [371] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [372] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(351),
+  },
+  {
+    /* [373] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [374] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(352),
+  },
+  {
+    /* [375] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [376] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(353),
+  },
+  {
+    /* [377] */
+    /* usage */ core::ParameterUsage::kLevel,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [378] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(355),
+  },
+  {
+    /* [379] */
+    /* usage */ core::ParameterUsage::kCoords,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [380] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [381] */
+    /* usage */ core::ParameterUsage::kSourceLaneIndex,
+    /* matcher_indices */ MatcherIndicesIndex(345),
+  },
+  {
+    /* [382] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [383] */
+    /* usage */ core::ParameterUsage::kSourceLaneIndex,
+    /* matcher_indices */ MatcherIndicesIndex(345),
+  },
+  {
+    /* [384] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [385] */
+    /* usage */ core::ParameterUsage::kMask,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [386] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [387] */
+    /* usage */ core::ParameterUsage::kMask,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [388] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [389] */
+    /* usage */ core::ParameterUsage::kDelta,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [390] */
+    /* usage */ core::ParameterUsage::kValue,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [391] */
+    /* usage */ core::ParameterUsage::kDelta,
+    /* matcher_indices */ MatcherIndicesIndex(17),
+  },
+  {
+    /* [392] */
+    /* usage */ core::ParameterUsage::kE,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [393] */
+    /* usage */ core::ParameterUsage::kId,
+    /* matcher_indices */ MatcherIndicesIndex(345),
+  },
+  {
+    /* [394] */
+    /* usage */ core::ParameterUsage::kE,
+    /* matcher_indices */ MatcherIndicesIndex(173),
+  },
+  {
+    /* [395] */
+    /* usage */ core::ParameterUsage::kId,
+    /* matcher_indices */ MatcherIndicesIndex(345),
+  },
+  {
+    /* [396] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(108),
+  },
+  {
+    /* [397] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(113),
+  },
+  {
+    /* [398] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(179),
+  },
+  {
+    /* [399] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [400] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(179),
+  },
+  {
+    /* [401] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(191),
+  },
+  {
+    /* [402] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(157),
+  },
+  {
+    /* [403] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(157),
+  },
+  {
+    /* [404] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [405] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(157),
+  },
+  {
+    /* [406] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(179),
+  },
+  {
+    /* [407] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(233),
+  },
+  {
+    /* [408] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(157),
+  },
+  {
+    /* [409] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(165),
+  },
+  {
+    /* [410] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(169),
+  },
+  {
+    /* [411] */
+    /* usage */ core::ParameterUsage::kXy,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [412] */
+    /* usage */ core::ParameterUsage::kZw,
+    /* matcher_indices */ MatcherIndicesIndex(279),
+  },
+  {
+    /* [413] */
+    /* usage */ core::ParameterUsage::kXyz,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [414] */
+    /* usage */ core::ParameterUsage::kW,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [415] */
+    /* usage */ core::ParameterUsage::kX,
+    /* matcher_indices */ MatcherIndicesIndex(27),
+  },
+  {
+    /* [416] */
+    /* usage */ core::ParameterUsage::kZyw,
+    /* matcher_indices */ MatcherIndicesIndex(26),
+  },
+  {
+    /* [417] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(42),
+  },
+  {
+    /* [418] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(6),
+  },
+  {
+    /* [419] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(185),
+  },
+  {
+    /* [420] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(188),
+  },
+  {
+    /* [421] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(102),
+  },
+  {
+    /* [422] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(194),
+  },
+  {
+    /* [423] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(5),
+  },
+  {
     /* [424] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(281),
+    /* matcher_indices */ MatcherIndicesIndex(239),
   },
   {
     /* [425] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(283),
+    /* matcher_indices */ MatcherIndicesIndex(19),
   },
   {
     /* [426] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(285),
+    /* matcher_indices */ MatcherIndicesIndex(133),
   },
   {
     /* [427] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(287),
+    /* matcher_indices */ MatcherIndicesIndex(41),
   },
   {
     /* [428] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(289),
+    /* matcher_indices */ MatcherIndicesIndex(197),
   },
   {
     /* [429] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(291),
+    /* matcher_indices */ MatcherIndicesIndex(66),
   },
   {
     /* [430] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(293),
+    /* matcher_indices */ MatcherIndicesIndex(245),
   },
   {
     /* [431] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(295),
+    /* matcher_indices */ MatcherIndicesIndex(247),
   },
   {
     /* [432] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(297),
+    /* matcher_indices */ MatcherIndicesIndex(249),
   },
   {
     /* [433] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(299),
+    /* matcher_indices */ MatcherIndicesIndex(141),
   },
   {
     /* [434] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(301),
+    /* matcher_indices */ MatcherIndicesIndex(145),
   },
   {
     /* [435] */
     /* usage */ core::ParameterUsage::kNone,
-    /* matcher_indices */ MatcherIndicesIndex(303),
+    /* matcher_indices */ MatcherIndicesIndex(47),
   },
   {
     /* [436] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(209),
+  },
+  {
+    /* [437] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(212),
+  },
+  {
+    /* [438] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(215),
+  },
+  {
+    /* [439] */
+    /* usage */ core::ParameterUsage::kTexture,
+    /* matcher_indices */ MatcherIndicesIndex(218),
+  },
+  {
+    /* [440] */
+    /* usage */ core::ParameterUsage::kInputAttachment,
+    /* matcher_indices */ MatcherIndicesIndex(281),
+  },
+  {
+    /* [441] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(153),
+  },
+  {
+    /* [442] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(149),
+  },
+  {
+    /* [443] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(10),
+  },
+  {
+    /* [444] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(95),
+  },
+  {
+    /* [445] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(289),
+  },
+  {
+    /* [446] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(291),
+  },
+  {
+    /* [447] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(293),
+  },
+  {
+    /* [448] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(295),
+  },
+  {
+    /* [449] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(297),
+  },
+  {
+    /* [450] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(299),
+  },
+  {
+    /* [451] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(301),
+  },
+  {
+    /* [452] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(146),
+  },
+  {
+    /* [453] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(303),
+  },
+  {
+    /* [454] */
     /* usage */ core::ParameterUsage::kNone,
     /* matcher_indices */ MatcherIndicesIndex(305),
   },
+  {
+    /* [455] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(307),
+  },
+  {
+    /* [456] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(309),
+  },
+  {
+    /* [457] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(311),
+  },
+  {
+    /* [458] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(313),
+  },
+  {
+    /* [459] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(315),
+  },
+  {
+    /* [460] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(317),
+  },
+  {
+    /* [461] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(319),
+  },
+  {
+    /* [462] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(321),
+  },
+  {
+    /* [463] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(323),
+  },
+  {
+    /* [464] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(325),
+  },
+  {
+    /* [465] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(327),
+  },
+  {
+    /* [466] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(329),
+  },
+  {
+    /* [467] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(331),
+  },
+  {
+    /* [468] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(333),
+  },
+  {
+    /* [469] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(335),
+  },
+  {
+    /* [470] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(337),
+  },
+  {
+    /* [471] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(339),
+  },
+  {
+    /* [472] */
+    /* usage */ core::ParameterUsage::kNone,
+    /* matcher_indices */ MatcherIndicesIndex(341),
+  },
 };
 
 static_assert(ParameterIndex::CanIndex(kParameters),
@@ -4596,7 +4812,7 @@
   {
     /* [0] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(29),
+    /* matcher_indices */ MatcherIndicesIndex(57),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -4608,7 +4824,7 @@
   {
     /* [2] */
     /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(323),
+    /* matcher_indices */ MatcherIndicesIndex(359),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -4631,512 +4847,512 @@
   },
   {
     /* [6] */
-    /* name */ "TR",
-    /* matcher_indices */ MatcherIndicesIndex(324),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(57),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [7] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(324),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [8] */
-    /* name */ "C",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
+    /* [8] */
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(114),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
     /* [9] */
-    /* name */ "R",
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [10] */
-    /* name */ "K",
+    /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [11] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(324),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "AC",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [12] */
-    /* name */ "TR",
-    /* matcher_indices */ MatcherIndicesIndex(324),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(57),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [13] */
-    /* name */ "C",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [14] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(104),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [15] */
-    /* name */ "K",
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [16] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [17] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(144),
+    /* name */ "AC",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [18] */
-    /* name */ "W",
-    /* matcher_indices */ MatcherIndicesIndex(12),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "TR",
+    /* matcher_indices */ MatcherIndicesIndex(360),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [19] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(360),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [20] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [21] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [22] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(322),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [23] */
-    /* name */ "W",
-    /* matcher_indices */ MatcherIndicesIndex(12),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [24] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [25] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [26] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(200),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [27] */
-    /* name */ "W",
-    /* matcher_indices */ MatcherIndicesIndex(12),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [28] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [29] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [30] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [31] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [32] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [33] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [34] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(144),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [35] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(45),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [36] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [37] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [38] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(322),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [39] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(45),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [40] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [41] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [42] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(200),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [43] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(45),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [44] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [45] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [46] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(144),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [47] */
-    /* name */ "RW",
-    /* matcher_indices */ MatcherIndicesIndex(6),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [48] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [49] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [50] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(322),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [51] */
-    /* name */ "RW",
-    /* matcher_indices */ MatcherIndicesIndex(6),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [52] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [53] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [54] */
-    /* name */ "F",
-    /* matcher_indices */ MatcherIndicesIndex(200),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [55] */
-    /* name */ "RW",
-    /* matcher_indices */ MatcherIndicesIndex(6),
-    /* kind */ TemplateInfo::Kind::kNumber,
-  },
-  {
-    /* [56] */
-    /* name */ "A",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [57] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(308),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [58] */
     /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [59] */
+    /* [23] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(360),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [24] */
+    /* name */ "TR",
+    /* matcher_indices */ MatcherIndicesIndex(360),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [25] */
     /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [60] */
+    /* [26] */
     /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [61] */
+    /* [27] */
+    /* name */ "K",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [28] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [29] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(102),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [30] */
+    /* name */ "W",
+    /* matcher_indices */ MatcherIndicesIndex(26),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [31] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [32] */
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [33] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [34] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(358),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [35] */
+    /* name */ "W",
+    /* matcher_indices */ MatcherIndicesIndex(26),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [36] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [37] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [38] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [39] */
+    /* name */ "W",
+    /* matcher_indices */ MatcherIndicesIndex(26),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [40] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [41] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(130),
+    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [42] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [43] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [44] */
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [45] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [46] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(102),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [47] */
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(17),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [48] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [49] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [50] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(358),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [51] */
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(17),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [52] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [53] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [54] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [55] */
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(17),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [56] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [57] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [58] */
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(102),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [59] */
+    /* name */ "RW",
+    /* matcher_indices */ MatcherIndicesIndex(6),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [60] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [61] */
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [62] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(358),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [63] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [64] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* name */ "RW",
+    /* matcher_indices */ MatcherIndicesIndex(6),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
+    /* [64] */
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
     /* [65] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(308),
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [66] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(310),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(10),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [67] */
-    /* name */ "M",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* name */ "RW",
+    /* matcher_indices */ MatcherIndicesIndex(6),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [68] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [69] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(308),
+    /* matcher_indices */ MatcherIndicesIndex(344),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [70] */
-    /* name */ "N",
+    /* name */ "K",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [71] */
-    /* name */ "M",
+    /* name */ "C",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [72] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [73] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [74] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [75] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [76] */
-    /* name */ "C",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [77] */
-    /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(309),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [78] */
-    /* name */ "S",
+    /* name */ "R",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [79] */
+    /* [73] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* matcher_indices */ MatcherIndicesIndex(182),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
+    /* [74] */
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [75] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [76] */
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [77] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(344),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [78] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(346),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [79] */
+    /* name */ "M",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
     /* [80] */
-    /* name */ "A",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [81] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(308),
+    /* matcher_indices */ MatcherIndicesIndex(344),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [82] */
-    /* name */ "C",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [83] */
-    /* name */ "R",
+    /* name */ "M",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [84] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [85] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(307),
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [86] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [87] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(309),
+    /* matcher_indices */ MatcherIndicesIndex(13),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [88] */
-    /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(1),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(345),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [89] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(345),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [90] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(45),
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
@@ -5147,27 +5363,27 @@
   },
   {
     /* [92] */
-    /* name */ "W",
-    /* matcher_indices */ MatcherIndicesIndex(12),
+    /* name */ "A",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [93] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(39),
+    /* matcher_indices */ MatcherIndicesIndex(344),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [94] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "C",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [95] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(136),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [96] */
@@ -5178,7 +5394,7 @@
   {
     /* [97] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(311),
+    /* matcher_indices */ MatcherIndicesIndex(343),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -5190,97 +5406,97 @@
   {
     /* [99] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(312),
+    /* matcher_indices */ MatcherIndicesIndex(345),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [100] */
-    /* name */ "N",
-    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(1),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [101] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(323),
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [102] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(139),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(17),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [103] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [104] */
+    /* name */ "W",
+    /* matcher_indices */ MatcherIndicesIndex(26),
+    /* kind */ TemplateInfo::Kind::kNumber,
+  },
+  {
+    /* [105] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [106] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(13),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [107] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(188),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [108] */
     /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
-    /* [104] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(5),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [105] */
-    /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [106] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(187),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [107] */
-    /* name */ "S",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
-    /* [108] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(39),
-    /* kind */ TemplateInfo::Kind::kType,
-  },
-  {
     /* [109] */
-    /* name */ "L",
-    /* matcher_indices */ MatcherIndicesIndex(309),
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(347),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [110] */
-    /* name */ "F",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [111] */
-    /* name */ "R",
-    /* matcher_indices */ MatcherIndicesIndex(45),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(348),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [112] */
-    /* name */ "F",
+    /* name */ "N",
     /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [113] */
-    /* name */ "W",
-    /* matcher_indices */ MatcherIndicesIndex(12),
-    /* kind */ TemplateInfo::Kind::kNumber,
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(359),
+    /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [114] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(325),
+    /* matcher_indices */ MatcherIndicesIndex(191),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
@@ -5292,115 +5508,187 @@
   {
     /* [116] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(147),
+    /* matcher_indices */ MatcherIndicesIndex(5),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [117] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(328),
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(13),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [118] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(6),
+    /* matcher_indices */ MatcherIndicesIndex(239),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [119] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(329),
+    /* name */ "S",
+    /* matcher_indices */ MatcherIndicesIndex(13),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [120] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(200),
+    /* matcher_indices */ MatcherIndicesIndex(13),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [121] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(326),
+    /* name */ "L",
+    /* matcher_indices */ MatcherIndicesIndex(345),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [122] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(45),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [123] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(327),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "R",
+    /* matcher_indices */ MatcherIndicesIndex(17),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [124] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(57),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "F",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [125] */
-    /* name */ "U",
-    /* matcher_indices */ MatcherIndicesIndex(330),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "W",
+    /* matcher_indices */ MatcherIndicesIndex(26),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [126] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(38),
+    /* matcher_indices */ MatcherIndicesIndex(361),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [127] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(313),
-    /* kind */ TemplateInfo::Kind::kType,
+    /* name */ "N",
+    /* matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* kind */ TemplateInfo::Kind::kNumber,
   },
   {
     /* [128] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(326),
+    /* matcher_indices */ MatcherIndicesIndex(41),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [129] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(327),
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(364),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [130] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(328),
+    /* matcher_indices */ MatcherIndicesIndex(6),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [131] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(329),
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(365),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [132] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(330),
+    /* matcher_indices */ MatcherIndicesIndex(10),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [133] */
-    /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(331),
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(362),
     /* kind */ TemplateInfo::Kind::kType,
   },
   {
     /* [134] */
     /* name */ "T",
-    /* matcher_indices */ MatcherIndicesIndex(332),
+    /* matcher_indices */ MatcherIndicesIndex(17),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [135] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(363),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [136] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(109),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [137] */
+    /* name */ "U",
+    /* matcher_indices */ MatcherIndicesIndex(366),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [138] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(12),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [139] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(349),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [140] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(362),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [141] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(363),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [142] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(364),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [143] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(365),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [144] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(366),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [145] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(367),
+    /* kind */ TemplateInfo::Kind::kType,
+  },
+  {
+    /* [146] */
+    /* name */ "T",
+    /* matcher_indices */ MatcherIndicesIndex(368),
     /* kind */ TemplateInfo::Kind::kType,
   },
 };
@@ -5535,9 +5823,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(72),
-    /* parameters */ ParameterIndex(288),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(84),
+    /* parameters */ ParameterIndex(324),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5546,9 +5834,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(72),
-    /* parameters */ ParameterIndex(291),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(84),
+    /* parameters */ ParameterIndex(327),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5557,9 +5845,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(207),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(227),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5568,9 +5856,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(72),
-    /* parameters */ ParameterIndex(294),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(84),
+    /* parameters */ ParameterIndex(330),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5579,9 +5867,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(75),
-    /* parameters */ ParameterIndex(297),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(87),
+    /* parameters */ ParameterIndex(333),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5590,9 +5878,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(73),
-    /* parameters */ ParameterIndex(300),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* templates */ TemplateIndex(85),
+    /* parameters */ ParameterIndex(336),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5601,9 +5889,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(30),
-    /* parameters */ ParameterIndex(211),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* templates */ TemplateIndex(42),
+    /* parameters */ ParameterIndex(231),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5612,9 +5900,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(76),
-    /* parameters */ ParameterIndex(303),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* templates */ TemplateIndex(88),
+    /* parameters */ ParameterIndex(339),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5623,9 +5911,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(342),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(378),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5634,9 +5922,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(33),
-    /* parameters */ ParameterIndex(261),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(45),
+    /* parameters */ ParameterIndex(297),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5645,9 +5933,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(37),
-    /* parameters */ ParameterIndex(261),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(49),
+    /* parameters */ ParameterIndex(297),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5656,9 +5944,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(41),
-    /* parameters */ ParameterIndex(261),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(53),
+    /* parameters */ ParameterIndex(297),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5667,9 +5955,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(33),
-    /* parameters */ ParameterIndex(264),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(45),
+    /* parameters */ ParameterIndex(300),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5678,9 +5966,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(37),
-    /* parameters */ ParameterIndex(264),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(49),
+    /* parameters */ ParameterIndex(300),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5689,9 +5977,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(41),
-    /* parameters */ ParameterIndex(264),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(53),
+    /* parameters */ ParameterIndex(300),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5700,9 +5988,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(33),
-    /* parameters */ ParameterIndex(195),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(45),
+    /* parameters */ ParameterIndex(215),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5711,9 +5999,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(37),
-    /* parameters */ ParameterIndex(195),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(49),
+    /* parameters */ ParameterIndex(215),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5722,9 +6010,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(41),
-    /* parameters */ ParameterIndex(195),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(53),
+    /* parameters */ ParameterIndex(215),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5733,9 +6021,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(33),
-    /* parameters */ ParameterIndex(267),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(45),
+    /* parameters */ ParameterIndex(303),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5744,9 +6032,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(37),
-    /* parameters */ ParameterIndex(267),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(49),
+    /* parameters */ ParameterIndex(303),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5755,9 +6043,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(41),
-    /* parameters */ ParameterIndex(267),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(53),
+    /* parameters */ ParameterIndex(303),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5766,9 +6054,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(45),
-    /* parameters */ ParameterIndex(261),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(57),
+    /* parameters */ ParameterIndex(297),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5777,9 +6065,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(261),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(297),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5788,9 +6076,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(53),
-    /* parameters */ ParameterIndex(261),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(65),
+    /* parameters */ ParameterIndex(297),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5799,9 +6087,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(45),
-    /* parameters */ ParameterIndex(264),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(57),
+    /* parameters */ ParameterIndex(300),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5810,9 +6098,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(264),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(300),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5821,9 +6109,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(53),
-    /* parameters */ ParameterIndex(264),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(65),
+    /* parameters */ ParameterIndex(300),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5832,9 +6120,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(45),
-    /* parameters */ ParameterIndex(195),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(57),
+    /* parameters */ ParameterIndex(215),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5843,9 +6131,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(195),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(215),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5854,9 +6142,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(53),
-    /* parameters */ ParameterIndex(195),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(65),
+    /* parameters */ ParameterIndex(215),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5865,9 +6153,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(45),
-    /* parameters */ ParameterIndex(267),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* templates */ TemplateIndex(57),
+    /* parameters */ ParameterIndex(303),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5876,9 +6164,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(49),
-    /* parameters */ ParameterIndex(267),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* templates */ TemplateIndex(61),
+    /* parameters */ ParameterIndex(303),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5887,9 +6175,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(53),
-    /* parameters */ ParameterIndex(267),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* templates */ TemplateIndex(65),
+    /* parameters */ ParameterIndex(303),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5898,9 +6186,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(288),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(324),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5909,9 +6197,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(108),
-    /* parameters */ ParameterIndex(322),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(120),
+    /* parameters */ ParameterIndex(358),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5920,9 +6208,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(75),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5931,9 +6219,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(108),
-    /* parameters */ ParameterIndex(324),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(120),
+    /* parameters */ ParameterIndex(360),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5942,9 +6230,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(27),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5953,9 +6241,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(108),
-    /* parameters */ ParameterIndex(326),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(120),
+    /* parameters */ ParameterIndex(362),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5964,9 +6252,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(294),
-    /* return_matcher_indices */ MatcherIndicesIndex(44),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(330),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5975,9 +6263,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(108),
-    /* parameters */ ParameterIndex(328),
-    /* return_matcher_indices */ MatcherIndicesIndex(44),
+    /* templates */ TemplateIndex(120),
+    /* parameters */ ParameterIndex(364),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5986,9 +6274,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(164),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(184),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -5997,9 +6285,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(108),
-    /* parameters */ ParameterIndex(330),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(120),
+    /* parameters */ ParameterIndex(366),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6008,9 +6296,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(80),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6019,9 +6307,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(108),
-    /* parameters */ ParameterIndex(332),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(120),
+    /* parameters */ ParameterIndex(368),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6030,9 +6318,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(297),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(333),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6043,7 +6331,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6052,9 +6340,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(334),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(370),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6065,7 +6353,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6074,9 +6362,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(336),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(372),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6086,8 +6374,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6096,9 +6384,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(338),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(374),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6109,7 +6397,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6118,9 +6406,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(340),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(376),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6130,8 +6418,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(303),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* parameters */ ParameterIndex(339),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6140,9 +6428,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(110),
-    /* parameters */ ParameterIndex(400),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(122),
+    /* parameters */ ParameterIndex(436),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6151,9 +6439,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(110),
-    /* parameters */ ParameterIndex(401),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(122),
+    /* parameters */ ParameterIndex(437),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6162,9 +6450,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(110),
-    /* parameters */ ParameterIndex(402),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(122),
+    /* parameters */ ParameterIndex(438),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6173,9 +6461,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(110),
-    /* parameters */ ParameterIndex(403),
-    /* return_matcher_indices */ MatcherIndicesIndex(44),
+    /* templates */ TemplateIndex(122),
+    /* parameters */ ParameterIndex(439),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6184,9 +6472,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(112),
-    /* parameters */ ParameterIndex(400),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(124),
+    /* parameters */ ParameterIndex(436),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6195,9 +6483,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(112),
-    /* parameters */ ParameterIndex(401),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(124),
+    /* parameters */ ParameterIndex(437),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6206,9 +6494,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(112),
-    /* parameters */ ParameterIndex(402),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* templates */ TemplateIndex(124),
+    /* parameters */ ParameterIndex(438),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6217,9 +6505,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(112),
-    /* parameters */ ParameterIndex(403),
-    /* return_matcher_indices */ MatcherIndicesIndex(44),
+    /* templates */ TemplateIndex(124),
+    /* parameters */ ParameterIndex(439),
+    /* return_matcher_indices */ MatcherIndicesIndex(33),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6229,8 +6517,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(258),
-    /* return_matcher_indices */ MatcherIndicesIndex(205),
+    /* parameters */ ParameterIndex(294),
+    /* return_matcher_indices */ MatcherIndicesIndex(72),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6241,7 +6529,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(251),
+    /* return_matcher_indices */ MatcherIndicesIndex(287),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6250,9 +6538,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
+    /* templates */ TemplateIndex(145),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6261,9 +6549,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -6272,9 +6560,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -6283,9 +6571,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
+    /* templates */ TemplateIndex(145),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -6294,9 +6582,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
+    /* templates */ TemplateIndex(109),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -6305,9 +6593,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -6316,9 +6604,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -6327,9 +6615,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(309),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(345),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6338,9 +6626,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(309),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(345),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6349,9 +6637,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(312),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(348),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6360,9 +6648,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(312),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(348),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6371,9 +6659,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(315),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(351),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6382,9 +6670,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(315),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(351),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6393,9 +6681,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(375),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(411),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6404,9 +6692,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(375),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(411),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6415,9 +6703,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(377),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(413),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6426,9 +6714,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(377),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(413),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6437,9 +6725,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(379),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(415),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6448,9 +6736,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(379),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(415),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6459,9 +6747,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(409),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(445),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6470,9 +6758,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(409),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(445),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6481,9 +6769,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(120),
-    /* parameters */ ParameterIndex(409),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(132),
+    /* parameters */ ParameterIndex(445),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6492,9 +6780,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(122),
-    /* parameters */ ParameterIndex(409),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(134),
+    /* parameters */ ParameterIndex(445),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6503,9 +6791,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(124),
-    /* parameters */ ParameterIndex(409),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(136),
+    /* parameters */ ParameterIndex(445),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6516,7 +6804,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(249),
+    /* return_matcher_indices */ MatcherIndicesIndex(101),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6525,9 +6813,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
+    /* templates */ TemplateIndex(145),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -6536,9 +6824,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -6547,9 +6835,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -6558,9 +6846,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
+    /* templates */ TemplateIndex(145),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -6569,9 +6857,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
+    /* templates */ TemplateIndex(109),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -6580,9 +6868,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -6591,9 +6879,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -6602,9 +6890,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(309),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(345),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6613,9 +6901,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(309),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(345),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6624,9 +6912,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(312),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(348),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6635,9 +6923,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(312),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(348),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(111),
   },
   {
@@ -6646,9 +6934,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(408),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(444),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6657,9 +6945,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(408),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(444),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6668,9 +6956,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(120),
-    /* parameters */ ParameterIndex(408),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(132),
+    /* parameters */ ParameterIndex(444),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6679,9 +6967,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(122),
-    /* parameters */ ParameterIndex(408),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(134),
+    /* parameters */ ParameterIndex(444),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6690,9 +6978,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(124),
-    /* parameters */ ParameterIndex(408),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
+    /* templates */ TemplateIndex(136),
+    /* parameters */ ParameterIndex(444),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -6702,8 +6990,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(255),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(291),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6714,7 +7002,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6724,8 +7012,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(175),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(195),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6734,9 +7022,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(19),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6745,9 +7033,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(99),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6758,7 +7046,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(50),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6768,8 +7056,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(179),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(199),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6780,7 +7068,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(119),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6789,9 +7077,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(56),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6802,7 +7090,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6812,8 +7100,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(167),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* parameters */ ParameterIndex(187),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6822,9 +7110,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6833,9 +7121,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(84),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6845,8 +7133,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(191),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* parameters */ ParameterIndex(211),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6855,9 +7143,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(144),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6868,7 +7156,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(124),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6879,7 +7167,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(124),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6888,9 +7176,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(62),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6899,9 +7187,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(62),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6912,7 +7200,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(129),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6923,7 +7211,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(129),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6933,8 +7221,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(187),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(207),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6943,9 +7231,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(134),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6954,9 +7242,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
+    /* templates */ TemplateIndex(32),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6965,9 +7253,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
+    /* templates */ TemplateIndex(32),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6976,9 +7264,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6987,9 +7275,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -6998,9 +7286,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(20),
-    /* parameters */ ParameterIndex(191),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* templates */ TemplateIndex(32),
+    /* parameters */ ParameterIndex(211),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7009,9 +7297,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(144),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7022,7 +7310,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(247),
+    /* return_matcher_indices */ MatcherIndicesIndex(285),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -7031,9 +7319,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
+    /* templates */ TemplateIndex(145),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -7042,9 +7330,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7053,9 +7341,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7064,9 +7352,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
+    /* templates */ TemplateIndex(145),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -7075,9 +7363,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
+    /* templates */ TemplateIndex(109),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(109),
   },
   {
@@ -7086,9 +7374,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(133),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(145),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -7097,9 +7385,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(223),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(259),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(110),
   },
   {
@@ -7108,9 +7396,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7119,9 +7407,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7130,9 +7418,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(120),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(132),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7141,9 +7429,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(122),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(134),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7152,9 +7440,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(124),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(239),
+    /* templates */ TemplateIndex(136),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(279),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7163,9 +7451,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(74),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7174,9 +7462,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(74),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7185,9 +7473,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(26),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7196,9 +7484,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(26),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7207,9 +7495,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(163),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(183),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7218,9 +7506,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(79),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7231,7 +7519,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(139),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7241,8 +7529,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(167),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(187),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7251,9 +7539,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(68),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7262,9 +7550,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(84),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7274,8 +7562,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(191),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(211),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7284,9 +7572,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(144),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7295,8 +7583,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(261),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(297),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7306,8 +7594,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(264),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(300),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7317,8 +7605,8 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(195),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(215),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7328,8 +7616,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(16),
-    /* parameters */ ParameterIndex(267),
+    /* templates */ TemplateIndex(28),
+    /* parameters */ ParameterIndex(303),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7339,8 +7627,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(21),
-    /* parameters */ ParameterIndex(270),
+    /* templates */ TemplateIndex(33),
+    /* parameters */ ParameterIndex(306),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7350,8 +7638,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(21),
-    /* parameters */ ParameterIndex(273),
+    /* templates */ TemplateIndex(33),
+    /* parameters */ ParameterIndex(309),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7361,8 +7649,8 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(21),
-    /* parameters */ ParameterIndex(199),
+    /* templates */ TemplateIndex(33),
+    /* parameters */ ParameterIndex(219),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7372,8 +7660,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(21),
-    /* parameters */ ParameterIndex(276),
+    /* templates */ TemplateIndex(33),
+    /* parameters */ ParameterIndex(312),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7383,8 +7671,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(25),
-    /* parameters */ ParameterIndex(279),
+    /* templates */ TemplateIndex(37),
+    /* parameters */ ParameterIndex(315),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7394,8 +7682,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(25),
-    /* parameters */ ParameterIndex(282),
+    /* templates */ TemplateIndex(37),
+    /* parameters */ ParameterIndex(318),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7405,8 +7693,8 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(25),
-    /* parameters */ ParameterIndex(203),
+    /* templates */ TemplateIndex(37),
+    /* parameters */ ParameterIndex(223),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7416,8 +7704,8 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(25),
-    /* parameters */ ParameterIndex(285),
+    /* templates */ TemplateIndex(37),
+    /* parameters */ ParameterIndex(321),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
@@ -7427,9 +7715,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(93),
-    /* parameters */ ParameterIndex(247),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(105),
+    /* parameters */ ParameterIndex(283),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7438,9 +7726,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(382),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(418),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7449,9 +7737,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(61),
-    /* parameters */ ParameterIndex(383),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(73),
+    /* parameters */ ParameterIndex(419),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7460,9 +7748,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(95),
-    /* parameters */ ParameterIndex(384),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(107),
+    /* parameters */ ParameterIndex(420),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7471,9 +7759,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(122),
-    /* parameters */ ParameterIndex(385),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(134),
+    /* parameters */ ParameterIndex(421),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7482,9 +7770,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(102),
-    /* parameters */ ParameterIndex(386),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(114),
+    /* parameters */ ParameterIndex(422),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7493,9 +7781,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(387),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(423),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7504,9 +7792,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(126),
-    /* parameters */ ParameterIndex(388),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(138),
+    /* parameters */ ParameterIndex(424),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7515,9 +7803,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(104),
-    /* parameters */ ParameterIndex(247),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(116),
+    /* parameters */ ParameterIndex(283),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7526,9 +7814,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(106),
-    /* parameters */ ParameterIndex(389),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* templates */ TemplateIndex(118),
+    /* parameters */ ParameterIndex(425),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(10),
   },
   {
@@ -7537,9 +7825,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(288),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(324),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7548,9 +7836,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(75),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7559,9 +7847,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(27),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7570,9 +7858,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(294),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(330),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7581,9 +7869,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(164),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(184),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7592,9 +7880,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(80),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7605,7 +7893,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7616,7 +7904,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7626,8 +7914,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7638,7 +7926,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -7647,9 +7935,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
+    /* templates */ TemplateIndex(97),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -7658,9 +7946,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -7669,9 +7957,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(362),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(398),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -7680,9 +7968,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(363),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(399),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -7691,9 +7979,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(69),
-    /* parameters */ ParameterIndex(368),
-    /* return_matcher_indices */ MatcherIndicesIndex(105),
+    /* templates */ TemplateIndex(81),
+    /* parameters */ ParameterIndex(404),
+    /* return_matcher_indices */ MatcherIndicesIndex(157),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -7702,9 +7990,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(69),
-    /* parameters */ ParameterIndex(367),
-    /* return_matcher_indices */ MatcherIndicesIndex(105),
+    /* templates */ TemplateIndex(81),
+    /* parameters */ ParameterIndex(403),
+    /* return_matcher_indices */ MatcherIndicesIndex(157),
     /* const_eval_fn */ ConstEvalFunctionIndex(88),
   },
   {
@@ -7713,9 +8001,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(81),
-    /* parameters */ ParameterIndex(369),
-    /* return_matcher_indices */ MatcherIndicesIndex(181),
+    /* templates */ TemplateIndex(93),
+    /* parameters */ ParameterIndex(405),
+    /* return_matcher_indices */ MatcherIndicesIndex(233),
     /* const_eval_fn */ ConstEvalFunctionIndex(89),
   },
   {
@@ -7724,9 +8012,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(81),
-    /* parameters */ ParameterIndex(371),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
+    /* templates */ TemplateIndex(93),
+    /* parameters */ ParameterIndex(407),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
     /* const_eval_fn */ ConstEvalFunctionIndex(90),
   },
   {
@@ -7735,9 +8023,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 4,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(373),
-    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(409),
+    /* return_matcher_indices */ MatcherIndicesIndex(161),
     /* const_eval_fn */ ConstEvalFunctionIndex(91),
   },
   {
@@ -7746,9 +8034,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -7757,9 +8045,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(410),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(446),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7768,9 +8056,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(410),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(446),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7779,9 +8067,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -7790,9 +8078,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -7801,9 +8089,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -7812,9 +8100,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -7823,9 +8111,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(411),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(447),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7834,9 +8122,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(412),
-    /* return_matcher_indices */ MatcherIndicesIndex(255),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(448),
+    /* return_matcher_indices */ MatcherIndicesIndex(291),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7845,9 +8133,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -7856,9 +8144,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(413),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(449),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7867,9 +8155,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(413),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(449),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7878,9 +8166,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -7889,9 +8177,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -7900,9 +8188,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -7911,9 +8199,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -7922,9 +8210,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(414),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(450),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7933,9 +8221,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(415),
-    /* return_matcher_indices */ MatcherIndicesIndex(261),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(451),
+    /* return_matcher_indices */ MatcherIndicesIndex(297),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -7944,9 +8232,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -7955,9 +8243,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(416),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(452),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7966,9 +8254,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(416),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(452),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -7977,9 +8265,9 @@
     /* num_parameters */ 8,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -7988,9 +8276,9 @@
     /* num_parameters */ 8,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -7999,9 +8287,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8010,9 +8298,9 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8021,9 +8309,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(417),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(453),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8032,9 +8320,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(418),
-    /* return_matcher_indices */ MatcherIndicesIndex(94),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(454),
+    /* return_matcher_indices */ MatcherIndicesIndex(146),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8043,9 +8331,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -8054,9 +8342,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(419),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(455),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8065,9 +8353,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(419),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(455),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8076,9 +8364,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8087,9 +8375,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8098,9 +8386,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8109,9 +8397,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8120,9 +8408,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(420),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(456),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8131,9 +8419,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(421),
-    /* return_matcher_indices */ MatcherIndicesIndex(271),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(457),
+    /* return_matcher_indices */ MatcherIndicesIndex(307),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8142,9 +8430,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -8153,9 +8441,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(422),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(458),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8164,9 +8452,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(422),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(458),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8175,9 +8463,9 @@
     /* num_parameters */ 9,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8186,9 +8474,9 @@
     /* num_parameters */ 9,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8197,9 +8485,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8208,9 +8496,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8219,9 +8507,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(423),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(459),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8230,9 +8518,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(424),
-    /* return_matcher_indices */ MatcherIndicesIndex(277),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(460),
+    /* return_matcher_indices */ MatcherIndicesIndex(313),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8241,9 +8529,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -8252,9 +8540,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(425),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(461),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8263,9 +8551,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(425),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(461),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8274,9 +8562,9 @@
     /* num_parameters */ 12,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8285,9 +8573,9 @@
     /* num_parameters */ 12,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8296,9 +8584,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8307,9 +8595,9 @@
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8318,9 +8606,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(426),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(462),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8329,9 +8617,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(427),
-    /* return_matcher_indices */ MatcherIndicesIndex(283),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(463),
+    /* return_matcher_indices */ MatcherIndicesIndex(319),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8340,9 +8628,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -8351,9 +8639,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(428),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(464),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8362,9 +8650,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(428),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(464),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8373,9 +8661,9 @@
     /* num_parameters */ 8,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8384,9 +8672,9 @@
     /* num_parameters */ 8,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8395,9 +8683,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8406,9 +8694,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(227),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(263),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8417,9 +8705,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(429),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(465),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8428,9 +8716,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(430),
-    /* return_matcher_indices */ MatcherIndicesIndex(289),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(466),
+    /* return_matcher_indices */ MatcherIndicesIndex(325),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8439,9 +8727,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -8450,9 +8738,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(431),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(467),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8461,9 +8749,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(431),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(467),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8472,9 +8760,9 @@
     /* num_parameters */ 12,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8483,9 +8771,9 @@
     /* num_parameters */ 12,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8494,9 +8782,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8505,9 +8793,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8516,9 +8804,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(432),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(468),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8527,9 +8815,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(433),
-    /* return_matcher_indices */ MatcherIndicesIndex(295),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(469),
+    /* return_matcher_indices */ MatcherIndicesIndex(331),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8538,9 +8826,9 @@
     /* num_parameters */ 0,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
+    /* templates */ TemplateIndex(146),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(107),
   },
   {
@@ -8549,9 +8837,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(134),
-    /* parameters */ ParameterIndex(434),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* templates */ TemplateIndex(146),
+    /* parameters */ ParameterIndex(470),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8560,9 +8848,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(434),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(470),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
@@ -8571,9 +8859,9 @@
     /* num_parameters */ 16,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8582,9 +8870,9 @@
     /* num_parameters */ 16,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
+    /* templates */ TemplateIndex(69),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(112),
   },
   {
@@ -8593,9 +8881,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8604,9 +8892,9 @@
     /* num_parameters */ 4,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(235),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(271),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(113),
   },
   {
@@ -8615,9 +8903,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(118),
-    /* parameters */ ParameterIndex(435),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* templates */ TemplateIndex(130),
+    /* parameters */ ParameterIndex(471),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8626,9 +8914,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(116),
-    /* parameters */ ParameterIndex(436),
-    /* return_matcher_indices */ MatcherIndicesIndex(301),
+    /* templates */ TemplateIndex(128),
+    /* parameters */ ParameterIndex(472),
+    /* return_matcher_indices */ MatcherIndicesIndex(337),
     /* const_eval_fn */ ConstEvalFunctionIndex(108),
   },
   {
@@ -8639,7 +8927,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(104),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8650,7 +8938,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(104),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8659,9 +8947,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(38),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8670,9 +8958,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(38),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8683,7 +8971,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(109),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8694,7 +8982,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(109),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8704,8 +8992,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(183),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(203),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8714,9 +9002,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(114),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8727,7 +9015,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8738,7 +9026,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8747,9 +9035,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(19),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8758,9 +9046,9 @@
     /* num_parameters */ 7,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(19),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8771,7 +9059,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(50),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8782,7 +9070,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(50),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8793,7 +9081,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(119),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8802,9 +9090,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(56),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8815,7 +9103,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8826,7 +9114,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8835,9 +9123,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8846,9 +9134,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8858,8 +9146,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8868,9 +9156,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8879,9 +9167,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(27),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8890,9 +9178,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
+    /* templates */ TemplateIndex(41),
     /* parameters */ ParameterIndex(80),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8903,7 +9191,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8914,7 +9202,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8923,9 +9211,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(110),
-    /* parameters */ ParameterIndex(402),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(122),
+    /* parameters */ ParameterIndex(438),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8934,9 +9222,9 @@
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(112),
-    /* parameters */ ParameterIndex(402),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
+    /* templates */ TemplateIndex(124),
+    /* parameters */ ParameterIndex(438),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8947,7 +9235,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8958,7 +9246,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8967,9 +9255,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8978,9 +9266,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -8990,8 +9278,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9000,9 +9288,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9013,7 +9301,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9024,7 +9312,7 @@
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(89),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9033,9 +9321,9 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9044,9 +9332,9 @@
     /* num_parameters */ 6,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(32),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9056,8 +9344,8 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(171),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* parameters */ ParameterIndex(191),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
@@ -9066,1960 +9354,79 @@
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(19),
+    /* templates */ TemplateIndex(31),
     /* parameters */ ParameterIndex(94),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
     /* [322] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(86),
-  },
-  {
-    /* [323] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(86),
-  },
-  {
-    /* [324] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(362),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(86),
-  },
-  {
-    /* [325] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(363),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(86),
-  },
-  {
-    /* [326] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(69),
-    /* parameters */ ParameterIndex(366),
-    /* return_matcher_indices */ MatcherIndicesIndex(105),
-    /* const_eval_fn */ ConstEvalFunctionIndex(86),
-  },
-  {
-    /* [327] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(87),
-  },
-  {
-    /* [328] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(87),
-  },
-  {
-    /* [329] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(362),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(87),
-  },
-  {
-    /* [330] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(363),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(87),
-  },
-  {
-    /* [331] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(69),
-    /* parameters */ ParameterIndex(366),
-    /* return_matcher_indices */ MatcherIndicesIndex(105),
-    /* const_eval_fn */ ConstEvalFunctionIndex(87),
-  },
-  {
-    /* [332] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(92),
-  },
-  {
-    /* [333] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(92),
-  },
-  {
-    /* [334] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(362),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(92),
-  },
-  {
-    /* [335] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(363),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(92),
-  },
-  {
-    /* [336] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [337] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [338] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(362),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [339] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(363),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(93),
-  },
-  {
-    /* [340] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(95),
-  },
-  {
-    /* [341] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(95),
-  },
-  {
-    /* [342] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(95),
-  },
-  {
-    /* [343] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(95),
-  },
-  {
-    /* [344] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(96),
-  },
-  {
-    /* [345] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(96),
-  },
-  {
-    /* [346] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(96),
-  },
-  {
-    /* [347] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(96),
-  },
-  {
-    /* [348] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(43),
-  },
-  {
-    /* [349] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(43),
-  },
-  {
-    /* [350] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(245),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(43),
-  },
-  {
-    /* [351] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(248),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(63),
-  },
-  {
-    /* [352] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(240),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(63),
-  },
-  {
-    /* [353] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(96),
-    /* parameters */ ParameterIndex(251),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(64),
-  },
-  {
-    /* [354] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(200),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [355] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(407),
-    /* return_matcher_indices */ MatcherIndicesIndex(200),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [356] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(128),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(200),
-    /* const_eval_fn */ ConstEvalFunctionIndex(108),
-  },
-  {
-    /* [357] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [358] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [359] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(129),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(108),
-  },
-  {
-    /* [360] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [361] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(391),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [362] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(130),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
-    /* const_eval_fn */ ConstEvalFunctionIndex(108),
-  },
-  {
-    /* [363] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [364] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(382),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [365] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(131),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(6),
-    /* const_eval_fn */ ConstEvalFunctionIndex(108),
-  },
-  {
-    /* [366] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 0,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(107),
-  },
-  {
-    /* [367] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(82),
-  },
-  {
-    /* [368] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(132),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(108),
-  },
-  {
-    /* [369] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(0),
-  },
-  {
-    /* [370] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(84),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(0),
-  },
-  {
-    /* [371] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(1),
-  },
-  {
-    /* [372] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(1),
-  },
-  {
-    /* [373] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(2),
-  },
-  {
-    /* [374] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(2),
-  },
-  {
-    /* [375] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(3),
-  },
-  {
-    /* [376] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(3),
-  },
-  {
-    /* [377] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(4),
-  },
-  {
-    /* [378] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(4),
-  },
-  {
-    /* [379] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(89),
-    /* parameters */ ParameterIndex(381),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [380] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(91),
-    /* parameters */ ParameterIndex(381),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [381] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(5),
-  },
-  {
-    /* [382] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(5),
-  },
-  {
-    /* [383] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(6),
-  },
-  {
-    /* [384] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(6),
-  },
-  {
-    /* [385] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(7),
-  },
-  {
-    /* [386] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(7),
-  },
-  {
-    /* [387] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(8),
-  },
-  {
-    /* [388] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(69),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(8),
-  },
-  {
-    /* [389] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(9),
-  },
-  {
-    /* [390] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(9),
-  },
-  {
-    /* [391] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(11),
-  },
-  {
-    /* [392] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(11),
-  },
-  {
-    /* [393] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(12),
-  },
-  {
-    /* [394] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(12),
-  },
-  {
-    /* [395] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(13),
-  },
-  {
-    /* [396] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(13),
-  },
-  {
-    /* [397] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(14),
-  },
-  {
-    /* [398] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(14),
-  },
-  {
-    /* [399] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(15),
-  },
-  {
-    /* [400] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(15),
-  },
-  {
-    /* [401] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(16),
-  },
-  {
-    /* [402] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(16),
-  },
-  {
-    /* [403] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(17),
-  },
-  {
-    /* [404] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(17),
-  },
-  {
-    /* [405] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(19),
-  },
-  {
-    /* [406] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(19),
-  },
-  {
-    /* [407] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(21),
-  },
-  {
-    /* [408] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(21),
-  },
-  {
-    /* [409] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(391),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [410] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(392),
-    /* return_matcher_indices */ MatcherIndicesIndex(145),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [411] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(25),
-  },
-  {
-    /* [412] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(25),
-  },
-  {
-    /* [413] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(26),
-  },
-  {
-    /* [414] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(26),
-  },
-  {
-    /* [415] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(16),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(27),
-  },
-  {
-    /* [416] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(160),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(27),
-  },
-  {
-    /* [417] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(29),
-  },
-  {
-    /* [418] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(29),
-  },
-  {
-    /* [419] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(30),
-  },
-  {
-    /* [420] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(30),
-  },
-  {
-    /* [421] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(31),
-  },
-  {
-    /* [422] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(31),
-  },
-  {
-    /* [423] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(32),
-  },
-  {
-    /* [424] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(32),
-  },
-  {
-    /* [425] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(33),
-  },
-  {
-    /* [426] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(33),
-  },
-  {
-    /* [427] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(191),
-    /* const_eval_fn */ ConstEvalFunctionIndex(34),
-  },
-  {
-    /* [428] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(148),
-    /* const_eval_fn */ ConstEvalFunctionIndex(34),
-  },
-  {
-    /* [429] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(15),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(35),
-  },
-  {
-    /* [430] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 4,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(35),
-  },
-  {
-    /* [431] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(36),
-  },
-  {
-    /* [432] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(36),
-  },
-  {
-    /* [433] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(65),
-    /* parameters */ ParameterIndex(318),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(37),
-  },
-  {
-    /* [434] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 3,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(320),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(37),
-  },
-  {
-    /* [435] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(38),
-  },
-  {
-    /* [436] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(38),
-  },
-  {
-    /* [437] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(39),
-  },
-  {
-    /* [438] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(39),
-  },
-  {
-    /* [439] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(40),
-  },
-  {
-    /* [440] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(40),
-  },
-  {
-    /* [441] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(41),
-  },
-  {
-    /* [442] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(84),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(41),
-  },
-  {
-    /* [443] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(42),
-  },
-  {
-    /* [444] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(84),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(42),
-  },
-  {
-    /* [445] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(193),
-    /* const_eval_fn */ ConstEvalFunctionIndex(44),
-  },
-  {
-    /* [446] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(154),
-    /* const_eval_fn */ ConstEvalFunctionIndex(44),
-  },
-  {
-    /* [447] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(55),
-  },
-  {
-    /* [448] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(55),
-  },
-  {
-    /* [449] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(391),
-    /* return_matcher_indices */ MatcherIndicesIndex(147),
-    /* const_eval_fn */ ConstEvalFunctionIndex(56),
-  },
-  {
-    /* [450] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(392),
-    /* return_matcher_indices */ MatcherIndicesIndex(145),
-    /* const_eval_fn */ ConstEvalFunctionIndex(56),
-  },
-  {
-    /* [451] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(57),
-  },
-  {
-    /* [452] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(57),
-  },
-  {
-    /* [453] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(60),
-  },
-  {
-    /* [454] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(60),
-  },
-  {
-    /* [455] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(61),
-  },
-  {
-    /* [456] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(61),
-  },
-  {
-    /* [457] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(62),
-  },
-  {
-    /* [458] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(69),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(62),
-  },
-  {
-    /* [459] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(99),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(65),
-  },
-  {
-    /* [460] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(98),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(65),
-  },
-  {
-    /* [461] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(66),
-  },
-  {
-    /* [462] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(66),
-  },
-  {
-    /* [463] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(67),
-  },
-  {
-    /* [464] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(67),
-  },
-  {
-    /* [465] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(68),
-  },
-  {
-    /* [466] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(68),
-  },
-  {
-    /* [467] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(69),
-  },
-  {
-    /* [468] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(69),
-  },
-  {
-    /* [469] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(70),
-  },
-  {
-    /* [470] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(70),
-  },
-  {
-    /* [471] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(71),
-  },
-  {
-    /* [472] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(71),
-  },
-  {
-    /* [473] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(72),
-  },
-  {
-    /* [474] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(72),
-  },
-  {
-    /* [475] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(74),
-  },
-  {
-    /* [476] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(74),
-  },
-  {
-    /* [477] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(127),
-    /* parameters */ ParameterIndex(398),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [478] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(399),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [479] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(297),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [480] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(303),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [481] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(44),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [482] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(258),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [483] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(101),
-    /* parameters */ ParameterIndex(344),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [484] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(100),
-    /* parameters */ ParameterIndex(346),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [485] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(101),
-    /* parameters */ ParameterIndex(344),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [486] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(100),
-    /* parameters */ ParameterIndex(346),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [487] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(101),
-    /* parameters */ ParameterIndex(348),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [488] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(100),
-    /* parameters */ ParameterIndex(350),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [489] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(101),
-    /* parameters */ ParameterIndex(352),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [490] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(100),
-    /* parameters */ ParameterIndex(354),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [491] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(87),
-    /* parameters */ ParameterIndex(344),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [492] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(86),
-    /* parameters */ ParameterIndex(346),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [493] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(101),
-    /* parameters */ ParameterIndex(356),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [494] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(100),
-    /* parameters */ ParameterIndex(358),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [495] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(101),
-    /* parameters */ ParameterIndex(356),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [496] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(100),
-    /* parameters */ ParameterIndex(358),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
-  },
-  {
-    /* [497] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 5,
     /* templates */ TemplateIndex(0),
-    /* parameters */ ParameterIndex(215),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* parameters */ ParameterIndex(235),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [498] */
+    /* [323] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 4,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 6,
     /* templates */ TemplateIndex(0),
-    /* parameters */ ParameterIndex(219),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* parameters */ ParameterIndex(239),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [499] */
+    /* [324] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(6),
+    /* parameters */ ParameterIndex(243),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [325] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(12),
+    /* parameters */ ParameterIndex(247),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [326] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 6,
+    /* templates */ TemplateIndex(6),
+    /* parameters */ ParameterIndex(251),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [327] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 1,
+    /* num_templates   */ 6,
+    /* templates */ TemplateIndex(12),
+    /* parameters */ ParameterIndex(255),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [328] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -11030,7 +9437,7 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [500] */
+    /* [329] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 5,
     /* num_explicit_templates */ 0,
@@ -11041,158 +9448,2039 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
+    /* [330] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 4,
+    /* templates */ TemplateIndex(7),
+    /* parameters */ ParameterIndex(159),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [331] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 4,
+    /* templates */ TemplateIndex(13),
+    /* parameters */ ParameterIndex(164),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [332] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(7),
+    /* parameters */ ParameterIndex(169),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [333] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+    /* num_parameters */ 5,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 5,
+    /* templates */ TemplateIndex(13),
+    /* parameters */ ParameterIndex(174),
+    /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [334] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(86),
+  },
+  {
+    /* [335] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(86),
+  },
+  {
+    /* [336] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(398),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(86),
+  },
+  {
+    /* [337] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(399),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(86),
+  },
+  {
+    /* [338] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(81),
+    /* parameters */ ParameterIndex(402),
+    /* return_matcher_indices */ MatcherIndicesIndex(157),
+    /* const_eval_fn */ ConstEvalFunctionIndex(86),
+  },
+  {
+    /* [339] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(87),
+  },
+  {
+    /* [340] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(87),
+  },
+  {
+    /* [341] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(398),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(87),
+  },
+  {
+    /* [342] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(399),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(87),
+  },
+  {
+    /* [343] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(81),
+    /* parameters */ ParameterIndex(402),
+    /* return_matcher_indices */ MatcherIndicesIndex(157),
+    /* const_eval_fn */ ConstEvalFunctionIndex(87),
+  },
+  {
+    /* [344] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(92),
+  },
+  {
+    /* [345] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(92),
+  },
+  {
+    /* [346] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(398),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(92),
+  },
+  {
+    /* [347] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(399),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(92),
+  },
+  {
+    /* [348] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [349] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [350] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(398),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [351] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(399),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(93),
+  },
+  {
+    /* [352] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(95),
+  },
+  {
+    /* [353] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(95),
+  },
+  {
+    /* [354] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(95),
+  },
+  {
+    /* [355] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(95),
+  },
+  {
+    /* [356] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(96),
+  },
+  {
+    /* [357] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(96),
+  },
+  {
+    /* [358] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(96),
+  },
+  {
+    /* [359] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(96),
+  },
+  {
+    /* [360] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(43),
+  },
+  {
+    /* [361] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(43),
+  },
+  {
+    /* [362] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(281),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(43),
+  },
+  {
+    /* [363] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(284),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(63),
+  },
+  {
+    /* [364] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(276),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(63),
+  },
+  {
+    /* [365] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(108),
+    /* parameters */ ParameterIndex(287),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(64),
+  },
+  {
+    /* [366] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [367] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(443),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
+  },
+  {
+    /* [368] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(140),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(108),
+  },
+  {
+    /* [369] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [370] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
+  },
+  {
+    /* [371] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(141),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(108),
+  },
+  {
+    /* [372] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [373] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(427),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
+  },
+  {
+    /* [374] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(142),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
+    /* const_eval_fn */ ConstEvalFunctionIndex(108),
+  },
+  {
+    /* [375] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [376] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(418),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
+  },
+  {
+    /* [377] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(143),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(6),
+    /* const_eval_fn */ ConstEvalFunctionIndex(108),
+  },
+  {
+    /* [378] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 0,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(/* invalid */),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(107),
+  },
+  {
+    /* [379] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(82),
+  },
+  {
+    /* [380] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(144),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(108),
+  },
+  {
+    /* [381] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(0),
+  },
+  {
+    /* [382] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(96),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(0),
+  },
+  {
+    /* [383] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(1),
+  },
+  {
+    /* [384] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(1),
+  },
+  {
+    /* [385] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(2),
+  },
+  {
+    /* [386] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(2),
+  },
+  {
+    /* [387] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(3),
+  },
+  {
+    /* [388] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(3),
+  },
+  {
+    /* [389] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(152),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(4),
+  },
+  {
+    /* [390] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(4),
+  },
+  {
+    /* [391] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(101),
+    /* parameters */ ParameterIndex(417),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [392] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(103),
+    /* parameters */ ParameterIndex(417),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [393] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(5),
+  },
+  {
+    /* [394] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(5),
+  },
+  {
+    /* [395] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(6),
+  },
+  {
+    /* [396] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(6),
+  },
+  {
+    /* [397] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(7),
+  },
+  {
+    /* [398] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(7),
+  },
+  {
+    /* [399] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(8),
+  },
+  {
+    /* [400] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(81),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(8),
+  },
+  {
+    /* [401] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(9),
+  },
+  {
+    /* [402] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(9),
+  },
+  {
+    /* [403] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(11),
+  },
+  {
+    /* [404] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(11),
+  },
+  {
+    /* [405] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(12),
+  },
+  {
+    /* [406] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(12),
+  },
+  {
+    /* [407] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(13),
+  },
+  {
+    /* [408] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(13),
+  },
+  {
+    /* [409] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(14),
+  },
+  {
+    /* [410] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(14),
+  },
+  {
+    /* [411] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(15),
+  },
+  {
+    /* [412] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(15),
+  },
+  {
+    /* [413] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(16),
+  },
+  {
+    /* [414] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(16),
+  },
+  {
+    /* [415] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(17),
+  },
+  {
+    /* [416] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(17),
+  },
+  {
+    /* [417] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(19),
+  },
+  {
+    /* [418] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(19),
+  },
+  {
+    /* [419] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(21),
+  },
+  {
+    /* [420] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(21),
+  },
+  {
+    /* [421] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(427),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [422] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(428),
+    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [423] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(25),
+  },
+  {
+    /* [424] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(25),
+  },
+  {
+    /* [425] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(26),
+  },
+  {
+    /* [426] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(26),
+  },
+  {
+    /* [427] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(16),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(27),
+  },
+  {
+    /* [428] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(180),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(27),
+  },
+  {
+    /* [429] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(29),
+  },
+  {
+    /* [430] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(29),
+  },
+  {
+    /* [431] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(30),
+  },
+  {
+    /* [432] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(30),
+  },
+  {
+    /* [433] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(31),
+  },
+  {
+    /* [434] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(31),
+  },
+  {
+    /* [435] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(32),
+  },
+  {
+    /* [436] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(32),
+  },
+  {
+    /* [437] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(33),
+  },
+  {
+    /* [438] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(33),
+  },
+  {
+    /* [439] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(241),
+    /* const_eval_fn */ ConstEvalFunctionIndex(34),
+  },
+  {
+    /* [440] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(200),
+    /* const_eval_fn */ ConstEvalFunctionIndex(34),
+  },
+  {
+    /* [441] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(15),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(35),
+  },
+  {
+    /* [442] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 4,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(35),
+  },
+  {
+    /* [443] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(36),
+  },
+  {
+    /* [444] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(36),
+  },
+  {
+    /* [445] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(77),
+    /* parameters */ ParameterIndex(354),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(37),
+  },
+  {
+    /* [446] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 3,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(356),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(37),
+  },
+  {
+    /* [447] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(38),
+  },
+  {
+    /* [448] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(38),
+  },
+  {
+    /* [449] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(39),
+  },
+  {
+    /* [450] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(39),
+  },
+  {
+    /* [451] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(40),
+  },
+  {
+    /* [452] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(40),
+  },
+  {
+    /* [453] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(41),
+  },
+  {
+    /* [454] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(96),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(41),
+  },
+  {
+    /* [455] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(42),
+  },
+  {
+    /* [456] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(96),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(42),
+  },
+  {
+    /* [457] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(243),
+    /* const_eval_fn */ ConstEvalFunctionIndex(44),
+  },
+  {
+    /* [458] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(206),
+    /* const_eval_fn */ ConstEvalFunctionIndex(44),
+  },
+  {
+    /* [459] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(55),
+  },
+  {
+    /* [460] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(55),
+  },
+  {
+    /* [461] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(427),
+    /* return_matcher_indices */ MatcherIndicesIndex(41),
+    /* const_eval_fn */ ConstEvalFunctionIndex(56),
+  },
+  {
+    /* [462] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(428),
+    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* const_eval_fn */ ConstEvalFunctionIndex(56),
+  },
+  {
+    /* [463] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(57),
+  },
+  {
+    /* [464] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(57),
+  },
+  {
+    /* [465] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(60),
+  },
+  {
+    /* [466] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(60),
+  },
+  {
+    /* [467] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(61),
+  },
+  {
+    /* [468] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(61),
+  },
+  {
+    /* [469] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(62),
+  },
+  {
+    /* [470] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(81),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(62),
+  },
+  {
+    /* [471] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(111),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(65),
+  },
+  {
+    /* [472] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(110),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(65),
+  },
+  {
+    /* [473] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(66),
+  },
+  {
+    /* [474] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(66),
+  },
+  {
+    /* [475] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(67),
+  },
+  {
+    /* [476] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(67),
+  },
+  {
+    /* [477] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(68),
+  },
+  {
+    /* [478] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(68),
+  },
+  {
+    /* [479] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(69),
+  },
+  {
+    /* [480] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(69),
+  },
+  {
+    /* [481] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(70),
+  },
+  {
+    /* [482] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(70),
+  },
+  {
+    /* [483] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(71),
+  },
+  {
+    /* [484] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(71),
+  },
+  {
+    /* [485] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(72),
+  },
+  {
+    /* [486] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(72),
+  },
+  {
+    /* [487] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(74),
+  },
+  {
+    /* [488] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(74),
+  },
+  {
+    /* [489] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(139),
+    /* parameters */ ParameterIndex(434),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [490] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(435),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [491] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(333),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [492] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(339),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [493] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(44),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [494] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(294),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [495] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(113),
+    /* parameters */ ParameterIndex(380),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [496] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(112),
+    /* parameters */ ParameterIndex(382),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [497] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(113),
+    /* parameters */ ParameterIndex(380),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [498] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(112),
+    /* parameters */ ParameterIndex(382),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [499] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(113),
+    /* parameters */ ParameterIndex(384),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [500] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(112),
+    /* parameters */ ParameterIndex(386),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
     /* [501] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(113),
+    /* parameters */ ParameterIndex(388),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [502] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(112),
+    /* parameters */ ParameterIndex(390),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [503] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(99),
+    /* parameters */ ParameterIndex(380),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [504] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(98),
+    /* parameters */ ParameterIndex(382),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [505] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(113),
+    /* parameters */ ParameterIndex(392),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [506] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(112),
+    /* parameters */ ParameterIndex(394),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [507] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(113),
+    /* parameters */ ParameterIndex(392),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [508] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(112),
+    /* parameters */ ParameterIndex(394),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+  },
+  {
+    /* [509] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
     /* const_eval_fn */ ConstEvalFunctionIndex(83),
   },
   {
-    /* [502] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(62),
-    /* parameters */ ParameterIndex(253),
-    /* return_matcher_indices */ MatcherIndicesIndex(124),
-    /* const_eval_fn */ ConstEvalFunctionIndex(83),
-  },
-  {
-    /* [503] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [504] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(84),
-  },
-  {
-    /* [505] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(99),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [506] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(99),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(85),
-  },
-  {
-    /* [507] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(94),
-  },
-  {
-    /* [508] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(94),
-  },
-  {
-    /* [509] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
-    /* num_explicit_templates */ 0,
-    /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(99),
-  },
-  {
     /* [510] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(184),
-    /* const_eval_fn */ ConstEvalFunctionIndex(99),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(74),
+    /* parameters */ ParameterIndex(289),
+    /* return_matcher_indices */ MatcherIndicesIndex(176),
+    /* const_eval_fn */ ConstEvalFunctionIndex(83),
   },
   {
     /* [511] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(97),
+    /* templates */ TemplateIndex(126),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(100),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
   },
   {
     /* [512] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(97),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(184),
-    /* const_eval_fn */ ConstEvalFunctionIndex(100),
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(84),
   },
   {
     /* [513] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
+    /* templates */ TemplateIndex(111),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(101),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
   },
   {
     /* [514] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(184),
-    /* const_eval_fn */ ConstEvalFunctionIndex(101),
+    /* templates */ TemplateIndex(111),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(85),
   },
   {
     /* [515] */
@@ -11200,10 +11488,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
+    /* templates */ TemplateIndex(126),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(102),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(94),
   },
   {
     /* [516] */
@@ -11211,10 +11499,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(184),
-    /* const_eval_fn */ ConstEvalFunctionIndex(102),
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(94),
   },
   {
     /* [517] */
@@ -11222,10 +11510,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
+    /* templates */ TemplateIndex(109),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(103),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(99),
   },
   {
     /* [518] */
@@ -11233,10 +11521,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(184),
-    /* const_eval_fn */ ConstEvalFunctionIndex(103),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(236),
+    /* const_eval_fn */ ConstEvalFunctionIndex(99),
   },
   {
     /* [519] */
@@ -11244,10 +11532,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(85),
+    /* templates */ TemplateIndex(109),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
-    /* const_eval_fn */ ConstEvalFunctionIndex(104),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(100),
   },
   {
     /* [520] */
@@ -11255,10 +11543,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(85),
-    /* parameters */ ParameterIndex(239),
-    /* return_matcher_indices */ MatcherIndicesIndex(184),
-    /* const_eval_fn */ ConstEvalFunctionIndex(104),
+    /* templates */ TemplateIndex(109),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(236),
+    /* const_eval_fn */ ConstEvalFunctionIndex(100),
   },
   {
     /* [521] */
@@ -11266,10 +11554,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(16),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(101),
   },
   {
     /* [522] */
@@ -11277,10 +11565,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(364),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(105),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(236),
+    /* const_eval_fn */ ConstEvalFunctionIndex(101),
   },
   {
     /* [523] */
@@ -11288,10 +11576,10 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(16),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(102),
   },
   {
     /* [524] */
@@ -11299,175 +11587,175 @@
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(114),
-    /* parameters */ ParameterIndex(364),
-    /* return_matcher_indices */ MatcherIndicesIndex(127),
-    /* const_eval_fn */ ConstEvalFunctionIndex(106),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(236),
+    /* const_eval_fn */ ConstEvalFunctionIndex(102),
   },
   {
     /* [525] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(57),
-    /* parameters */ ParameterIndex(231),
-    /* return_matcher_indices */ MatcherIndicesIndex(12),
-    /* const_eval_fn */ ConstEvalFunctionIndex(18),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(103),
   },
   {
     /* [526] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(390),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(20),
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(236),
+    /* const_eval_fn */ ConstEvalFunctionIndex(103),
   },
   {
     /* [527] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(84),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(10),
-    /* const_eval_fn */ ConstEvalFunctionIndex(22),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(1),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
+    /* const_eval_fn */ ConstEvalFunctionIndex(104),
   },
   {
     /* [528] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(200),
-    /* const_eval_fn */ ConstEvalFunctionIndex(23),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(97),
+    /* parameters */ ParameterIndex(275),
+    /* return_matcher_indices */ MatcherIndicesIndex(236),
+    /* const_eval_fn */ ConstEvalFunctionIndex(104),
   },
   {
     /* [529] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(24),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(16),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
   },
   {
     /* [530] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(244),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(28),
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(400),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(105),
   },
   {
     /* [531] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(45),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(16),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
   },
   {
     /* [532] */
-    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(393),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(46),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(126),
+    /* parameters */ ParameterIndex(400),
+    /* return_matcher_indices */ MatcherIndicesIndex(179),
+    /* const_eval_fn */ ConstEvalFunctionIndex(106),
   },
   {
     /* [533] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(393),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(47),
+    /* num_templates   */ 1,
+    /* templates */ TemplateIndex(69),
+    /* parameters */ ParameterIndex(267),
+    /* return_matcher_indices */ MatcherIndicesIndex(26),
+    /* const_eval_fn */ ConstEvalFunctionIndex(18),
   },
   {
     /* [534] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(393),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(48),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(426),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(20),
   },
   {
     /* [535] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(394),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(49),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(96),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(20),
+    /* const_eval_fn */ ConstEvalFunctionIndex(22),
   },
   {
     /* [536] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(394),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(50),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(10),
+    /* const_eval_fn */ ConstEvalFunctionIndex(23),
   },
   {
     /* [537] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(395),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(51),
+    /* parameters */ ParameterIndex(17),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(24),
   },
   {
     /* [538] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 1,
+    /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(396),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(52),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(280),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(28),
   },
   {
     /* [539] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 0,
-    /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(395),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(53),
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(45),
   },
   {
     /* [540] */
@@ -11476,34 +11764,122 @@
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(396),
-    /* return_matcher_indices */ MatcherIndicesIndex(45),
-    /* const_eval_fn */ ConstEvalFunctionIndex(54),
+    /* parameters */ ParameterIndex(429),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(46),
   },
   {
     /* [541] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 2,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(159),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(58),
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(429),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(47),
   },
   {
     /* [542] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
-    /* num_parameters */ 3,
+    /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
-    /* num_templates   */ 2,
-    /* templates */ TemplateIndex(64),
-    /* parameters */ ParameterIndex(245),
-    /* return_matcher_indices */ MatcherIndicesIndex(121),
-    /* const_eval_fn */ ConstEvalFunctionIndex(59),
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(429),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(48),
   },
   {
     /* [543] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(430),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(49),
+  },
+  {
+    /* [544] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(430),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(50),
+  },
+  {
+    /* [545] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(431),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(51),
+  },
+  {
+    /* [546] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(432),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(52),
+  },
+  {
+    /* [547] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(431),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(53),
+  },
+  {
+    /* [548] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 1,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 0,
+    /* templates */ TemplateIndex(/* invalid */),
+    /* parameters */ ParameterIndex(432),
+    /* return_matcher_indices */ MatcherIndicesIndex(17),
+    /* const_eval_fn */ ConstEvalFunctionIndex(54),
+  },
+  {
+    /* [549] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 2,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(179),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(58),
+  },
+  {
+    /* [550] */
+    /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+    /* num_parameters */ 3,
+    /* num_explicit_templates */ 0,
+    /* num_templates   */ 2,
+    /* templates */ TemplateIndex(76),
+    /* parameters */ ParameterIndex(281),
+    /* return_matcher_indices */ MatcherIndicesIndex(173),
+    /* const_eval_fn */ ConstEvalFunctionIndex(59),
+  },
+  {
+    /* [551] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 0,
     /* num_explicit_templates */ 0,
@@ -11514,256 +11890,256 @@
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [544] */
+    /* [552] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(67),
-    /* parameters */ ParameterIndex(397),
-    /* return_matcher_indices */ MatcherIndicesIndex(85),
+    /* templates */ TemplateIndex(79),
+    /* parameters */ ParameterIndex(433),
+    /* return_matcher_indices */ MatcherIndicesIndex(137),
     /* const_eval_fn */ ConstEvalFunctionIndex(73),
   },
   {
-    /* [545] */
+    /* [553] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(195),
+    /* return_matcher_indices */ MatcherIndicesIndex(66),
     /* const_eval_fn */ ConstEvalFunctionIndex(75),
   },
   {
-    /* [546] */
+    /* [554] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(195),
+    /* return_matcher_indices */ MatcherIndicesIndex(66),
     /* const_eval_fn */ ConstEvalFunctionIndex(76),
   },
   {
-    /* [547] */
+    /* [555] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(195),
+    /* return_matcher_indices */ MatcherIndicesIndex(66),
     /* const_eval_fn */ ConstEvalFunctionIndex(77),
   },
   {
-    /* [548] */
+    /* [556] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(78),
   },
   {
-    /* [549] */
+    /* [557] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(197),
+    /* return_matcher_indices */ MatcherIndicesIndex(245),
     /* const_eval_fn */ ConstEvalFunctionIndex(79),
   },
   {
-    /* [550] */
+    /* [558] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(199),
+    /* return_matcher_indices */ MatcherIndicesIndex(247),
     /* const_eval_fn */ ConstEvalFunctionIndex(80),
   },
   {
-    /* [551] */
+    /* [559] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(17),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(81),
   },
   {
-    /* [552] */
+    /* [560] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(29),
-    /* parameters */ ParameterIndex(404),
-    /* return_matcher_indices */ MatcherIndicesIndex(219),
+    /* templates */ TemplateIndex(41),
+    /* parameters */ ParameterIndex(440),
+    /* return_matcher_indices */ MatcherIndicesIndex(265),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [553] */
+    /* [561] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(87),
+    /* templates */ TemplateIndex(99),
     /* parameters */ ParameterIndex(0),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [554] */
+    /* [562] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(87),
+    /* templates */ TemplateIndex(99),
     /* parameters */ ParameterIndex(0),
     /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [555] */
+    /* [563] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(87),
+    /* templates */ TemplateIndex(99),
     /* parameters */ ParameterIndex(0),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [556] */
+    /* [564] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 2,
-    /* templates */ TemplateIndex(87),
+    /* templates */ TemplateIndex(99),
     /* parameters */ ParameterIndex(0),
-    /* return_matcher_indices */ MatcherIndicesIndex(245),
+    /* return_matcher_indices */ MatcherIndicesIndex(283),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [557] */
+    /* [565] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(201),
+    /* return_matcher_indices */ MatcherIndicesIndex(249),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [558] */
+    /* [566] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 0,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(/* invalid */),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [559] */
+    /* [567] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
     /* parameters */ ParameterIndex(152),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [560] */
+    /* [568] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 1,
     /* num_templates   */ 5,
-    /* templates */ TemplateIndex(6),
-    /* parameters */ ParameterIndex(360),
-    /* return_matcher_indices */ MatcherIndicesIndex(51),
+    /* templates */ TemplateIndex(18),
+    /* parameters */ ParameterIndex(396),
+    /* return_matcher_indices */ MatcherIndicesIndex(103),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [561] */
+    /* [569] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 3,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 5,
-    /* templates */ TemplateIndex(11),
-    /* parameters */ ParameterIndex(306),
-    /* return_matcher_indices */ MatcherIndicesIndex(66),
+    /* templates */ TemplateIndex(23),
+    /* parameters */ ParameterIndex(342),
+    /* return_matcher_indices */ MatcherIndicesIndex(118),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [562] */
+    /* [570] */
     /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 1,
-    /* templates */ TemplateIndex(79),
+    /* templates */ TemplateIndex(91),
     /* parameters */ ParameterIndex(1),
-    /* return_matcher_indices */ MatcherIndicesIndex(13),
+    /* return_matcher_indices */ MatcherIndicesIndex(27),
     /* const_eval_fn */ ConstEvalFunctionIndex(82),
   },
   {
-    /* [563] */
+    /* [571] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(78),
-    /* parameters */ ParameterIndex(405),
-    /* return_matcher_indices */ MatcherIndicesIndex(97),
+    /* templates */ TemplateIndex(90),
+    /* parameters */ ParameterIndex(441),
+    /* return_matcher_indices */ MatcherIndicesIndex(149),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [564] */
+    /* [572] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 1,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 3,
-    /* templates */ TemplateIndex(78),
-    /* parameters */ ParameterIndex(406),
-    /* return_matcher_indices */ MatcherIndicesIndex(101),
+    /* templates */ TemplateIndex(90),
+    /* parameters */ ParameterIndex(442),
+    /* return_matcher_indices */ MatcherIndicesIndex(153),
     /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
   },
   {
-    /* [565] */
+    /* [573] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
     /* const_eval_fn */ ConstEvalFunctionIndex(97),
   },
   {
-    /* [566] */
+    /* [574] */
     /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
     /* num_parameters */ 2,
     /* num_explicit_templates */ 0,
     /* num_templates   */ 0,
     /* templates */ TemplateIndex(/* invalid */),
-    /* parameters */ ParameterIndex(242),
-    /* return_matcher_indices */ MatcherIndicesIndex(57),
+    /* parameters */ ParameterIndex(278),
+    /* return_matcher_indices */ MatcherIndicesIndex(109),
     /* const_eval_fn */ ConstEvalFunctionIndex(98),
   },
 };
@@ -11777,77 +12153,77 @@
     /* fn abs[T : fia_fiu32_f16](T) -> T */
     /* fn abs[N : num, T : fia_fiu32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(369),
+    /* overloads */ OverloadIndex(381),
   },
   {
     /* [1] */
     /* fn acos[T : fa_f32_f16](@test_value(0.96891242171) T) -> T */
     /* fn acos[N : num, T : fa_f32_f16](@test_value(0.96891242171) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(371),
+    /* overloads */ OverloadIndex(383),
   },
   {
     /* [2] */
     /* fn acosh[T : fa_f32_f16](@test_value(1.5430806348) T) -> T */
     /* fn acosh[N : num, T : fa_f32_f16](@test_value(1.5430806348) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(373),
+    /* overloads */ OverloadIndex(385),
   },
   {
     /* [3] */
     /* fn all(bool) -> bool */
     /* fn all[N : num](vec<N, bool>) -> bool */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(375),
+    /* overloads */ OverloadIndex(387),
   },
   {
     /* [4] */
     /* fn any(bool) -> bool */
     /* fn any[N : num](vec<N, bool>) -> bool */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(377),
+    /* overloads */ OverloadIndex(389),
   },
   {
     /* [5] */
     /* fn arrayLength[T, R : read](ptr<storage, runtime_array<T>, R>) -> u32 */
     /* fn arrayLength[T, W : writable](ptr<storage, runtime_array<T>, W>) -> u32 */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(379),
+    /* overloads */ OverloadIndex(391),
   },
   {
     /* [6] */
     /* fn asin[T : fa_f32_f16](@test_value(0.479425538604) T) -> T */
     /* fn asin[N : num, T : fa_f32_f16](@test_value(0.479425538604) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(381),
+    /* overloads */ OverloadIndex(393),
   },
   {
     /* [7] */
     /* fn asinh[T : fa_f32_f16](T) -> T */
     /* fn asinh[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(383),
+    /* overloads */ OverloadIndex(395),
   },
   {
     /* [8] */
     /* fn atan[T : fa_f32_f16](T) -> T */
     /* fn atan[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(385),
+    /* overloads */ OverloadIndex(397),
   },
   {
     /* [9] */
     /* fn atan2[T : fa_f32_f16](T, T) -> T */
     /* fn atan2[T : fa_f32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(387),
+    /* overloads */ OverloadIndex(399),
   },
   {
     /* [10] */
     /* fn atanh[T : fa_f32_f16](@test_value(0.5) T) -> T */
     /* fn atanh[N : num, T : fa_f32_f16](@test_value(0.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(389),
+    /* overloads */ OverloadIndex(401),
   },
   {
     /* [11] */
@@ -11869,281 +12245,281 @@
     /* fn ceil[T : fa_f32_f16](@test_value(1.5) T) -> T */
     /* fn ceil[N : num, T : fa_f32_f16](@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(391),
+    /* overloads */ OverloadIndex(403),
   },
   {
     /* [13] */
     /* fn clamp[T : fia_fiu32_f16](T, T, T) -> T */
     /* fn clamp[T : fia_fiu32_f16, N : num](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(393),
+    /* overloads */ OverloadIndex(405),
   },
   {
     /* [14] */
     /* fn cos[T : fa_f32_f16](@test_value(0) T) -> T */
     /* fn cos[N : num, T : fa_f32_f16](@test_value(0) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(395),
+    /* overloads */ OverloadIndex(407),
   },
   {
     /* [15] */
     /* fn cosh[T : fa_f32_f16](@test_value(0) T) -> T */
     /* fn cosh[N : num, T : fa_f32_f16](@test_value(0) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(397),
+    /* overloads */ OverloadIndex(409),
   },
   {
     /* [16] */
     /* fn countLeadingZeros[T : iu32](T) -> T */
     /* fn countLeadingZeros[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(399),
+    /* overloads */ OverloadIndex(411),
   },
   {
     /* [17] */
     /* fn countOneBits[T : iu32](T) -> T */
     /* fn countOneBits[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(401),
+    /* overloads */ OverloadIndex(413),
   },
   {
     /* [18] */
     /* fn countTrailingZeros[T : iu32](T) -> T */
     /* fn countTrailingZeros[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(403),
+    /* overloads */ OverloadIndex(415),
   },
   {
     /* [19] */
     /* fn cross[T : fa_f32_f16](vec3<T>, vec3<T>) -> vec3<T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(525),
+    /* overloads */ OverloadIndex(533),
   },
   {
     /* [20] */
     /* fn degrees[T : fa_f32_f16](T) -> T */
     /* fn degrees[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(405),
+    /* overloads */ OverloadIndex(417),
   },
   {
     /* [21] */
     /* fn determinant[N : num, T : fa_f32_f16](mat<N, N, T>) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(526),
+    /* overloads */ OverloadIndex(534),
   },
   {
     /* [22] */
     /* fn distance[T : fa_f32_f16](T, T) -> T */
     /* fn distance[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>) -> T */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(407),
+    /* overloads */ OverloadIndex(419),
   },
   {
     /* [23] */
     /* fn dot[N : num, T : fia_fiu32_f16](vec<N, T>, vec<N, T>) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(527),
+    /* overloads */ OverloadIndex(535),
   },
   {
     /* [24] */
     /* fn dot4I8Packed(u32, u32) -> i32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(528),
+    /* overloads */ OverloadIndex(536),
   },
   {
     /* [25] */
     /* fn dot4U8Packed(u32, u32) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(529),
+    /* overloads */ OverloadIndex(537),
   },
   {
     /* [26] */
     /* fn dpdx(f32) -> f32 */
     /* fn dpdx[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [27] */
     /* fn dpdxCoarse(f32) -> f32 */
     /* fn dpdxCoarse[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [28] */
     /* fn dpdxFine(f32) -> f32 */
     /* fn dpdxFine[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [29] */
     /* fn dpdy(f32) -> f32 */
     /* fn dpdy[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [30] */
     /* fn dpdyCoarse(f32) -> f32 */
     /* fn dpdyCoarse[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [31] */
     /* fn dpdyFine(f32) -> f32 */
     /* fn dpdyFine[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [32] */
     /* fn exp[T : fa_f32_f16](T) -> T */
     /* fn exp[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(411),
+    /* overloads */ OverloadIndex(423),
   },
   {
     /* [33] */
     /* fn exp2[T : fa_f32_f16](T) -> T */
     /* fn exp2[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(413),
+    /* overloads */ OverloadIndex(425),
   },
   {
     /* [34] */
     /* fn extractBits[T : iu32](T, u32, u32) -> T */
     /* fn extractBits[N : num, T : iu32](vec<N, T>, u32, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(415),
+    /* overloads */ OverloadIndex(427),
   },
   {
     /* [35] */
     /* fn faceForward[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(530),
+    /* overloads */ OverloadIndex(538),
   },
   {
     /* [36] */
     /* fn firstLeadingBit[T : iu32](T) -> T */
     /* fn firstLeadingBit[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(417),
+    /* overloads */ OverloadIndex(429),
   },
   {
     /* [37] */
     /* fn firstTrailingBit[T : iu32](T) -> T */
     /* fn firstTrailingBit[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(419),
+    /* overloads */ OverloadIndex(431),
   },
   {
     /* [38] */
     /* fn floor[T : fa_f32_f16](@test_value(1.5) T) -> T */
     /* fn floor[N : num, T : fa_f32_f16](@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(421),
+    /* overloads */ OverloadIndex(433),
   },
   {
     /* [39] */
     /* fn fma[T : fa_f32_f16](T, T, T) -> T */
     /* fn fma[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(423),
+    /* overloads */ OverloadIndex(435),
   },
   {
     /* [40] */
     /* fn fract[T : fa_f32_f16](@test_value(1.25) T) -> T */
     /* fn fract[N : num, T : fa_f32_f16](@test_value(1.25) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(425),
+    /* overloads */ OverloadIndex(437),
   },
   {
     /* [41] */
     /* fn frexp[T : fa_f32_f16](T) -> __frexp_result<T> */
     /* fn frexp[N : num, T : fa_f32_f16](vec<N, T>) -> __frexp_result_vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(427),
+    /* overloads */ OverloadIndex(439),
   },
   {
     /* [42] */
     /* fn fwidth(f32) -> f32 */
     /* fn fwidth[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [43] */
     /* fn fwidthCoarse(f32) -> f32 */
     /* fn fwidthCoarse[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [44] */
     /* fn fwidthFine(f32) -> f32 */
     /* fn fwidthFine[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(409),
+    /* overloads */ OverloadIndex(421),
   },
   {
     /* [45] */
     /* fn insertBits[T : iu32](T, T, u32, u32) -> T */
     /* fn insertBits[N : num, T : iu32](vec<N, T>, vec<N, T>, u32, u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(429),
+    /* overloads */ OverloadIndex(441),
   },
   {
     /* [46] */
     /* fn inverseSqrt[T : fa_f32_f16](T) -> T */
     /* fn inverseSqrt[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(431),
+    /* overloads */ OverloadIndex(443),
   },
   {
     /* [47] */
     /* fn ldexp[T : fa_f32_f16, U : ia_i32](T, U) -> T */
     /* fn ldexp[N : num, T : fa_f32_f16, U : ia_i32](vec<N, T>, vec<N, U>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(433),
+    /* overloads */ OverloadIndex(445),
   },
   {
     /* [48] */
     /* fn length[T : fa_f32_f16](@test_value(0) T) -> T */
     /* fn length[N : num, T : fa_f32_f16](@test_value(0) vec<N, T>) -> T */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(435),
+    /* overloads */ OverloadIndex(447),
   },
   {
     /* [49] */
     /* fn log[T : fa_f32_f16](T) -> T */
     /* fn log[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(437),
+    /* overloads */ OverloadIndex(449),
   },
   {
     /* [50] */
     /* fn log2[T : fa_f32_f16](T) -> T */
     /* fn log2[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(439),
+    /* overloads */ OverloadIndex(451),
   },
   {
     /* [51] */
     /* fn max[T : fia_fiu32_f16](T, T) -> T */
     /* fn max[N : num, T : fia_fiu32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(441),
+    /* overloads */ OverloadIndex(453),
   },
   {
     /* [52] */
     /* fn min[T : fia_fiu32_f16](T, T) -> T */
     /* fn min[N : num, T : fia_fiu32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(443),
+    /* overloads */ OverloadIndex(455),
   },
   {
     /* [53] */
@@ -12151,128 +12527,128 @@
     /* fn mix[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* fn mix[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(348),
+    /* overloads */ OverloadIndex(360),
   },
   {
     /* [54] */
     /* fn modf[T : fa_f32_f16](@test_value(-1.5) T) -> __modf_result<T> */
     /* fn modf[N : num, T : fa_f32_f16](@test_value(-1.5) vec<N, T>) -> __modf_result_vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(445),
+    /* overloads */ OverloadIndex(457),
   },
   {
     /* [55] */
     /* fn normalize[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(531),
+    /* overloads */ OverloadIndex(539),
   },
   {
     /* [56] */
     /* fn pack2x16float(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(532),
+    /* overloads */ OverloadIndex(540),
   },
   {
     /* [57] */
     /* fn pack2x16snorm(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(533),
+    /* overloads */ OverloadIndex(541),
   },
   {
     /* [58] */
     /* fn pack2x16unorm(vec2<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(534),
+    /* overloads */ OverloadIndex(542),
   },
   {
     /* [59] */
     /* fn pack4x8snorm(vec4<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(535),
+    /* overloads */ OverloadIndex(543),
   },
   {
     /* [60] */
     /* fn pack4x8unorm(vec4<f32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(536),
+    /* overloads */ OverloadIndex(544),
   },
   {
     /* [61] */
     /* fn pack4xI8(vec4<i32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(537),
+    /* overloads */ OverloadIndex(545),
   },
   {
     /* [62] */
     /* fn pack4xU8(vec4<u32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(538),
+    /* overloads */ OverloadIndex(546),
   },
   {
     /* [63] */
     /* fn pack4xI8Clamp(vec4<i32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(539),
+    /* overloads */ OverloadIndex(547),
   },
   {
     /* [64] */
     /* fn pack4xU8Clamp(vec4<u32>) -> u32 */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(540),
+    /* overloads */ OverloadIndex(548),
   },
   {
     /* [65] */
     /* fn pow[T : fa_f32_f16](T, T) -> T */
     /* fn pow[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(447),
+    /* overloads */ OverloadIndex(459),
   },
   {
     /* [66] */
     /* fn quantizeToF16(f32) -> f32 */
     /* fn quantizeToF16[N : num](vec<N, f32>) -> vec<N, f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(449),
+    /* overloads */ OverloadIndex(461),
   },
   {
     /* [67] */
     /* fn radians[T : fa_f32_f16](T) -> T */
     /* fn radians[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(451),
+    /* overloads */ OverloadIndex(463),
   },
   {
     /* [68] */
     /* fn reflect[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(541),
+    /* overloads */ OverloadIndex(549),
   },
   {
     /* [69] */
     /* fn refract[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(542),
+    /* overloads */ OverloadIndex(550),
   },
   {
     /* [70] */
     /* fn reverseBits[T : iu32](T) -> T */
     /* fn reverseBits[N : num, T : iu32](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(453),
+    /* overloads */ OverloadIndex(465),
   },
   {
     /* [71] */
     /* fn round[T : fa_f32_f16](@test_value(3.5) T) -> T */
     /* fn round[N : num, T : fa_f32_f16](@test_value(3.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(455),
+    /* overloads */ OverloadIndex(467),
   },
   {
     /* [72] */
     /* fn saturate[T : fa_f32_f16](@test_value(2) T) -> T */
     /* fn saturate[T : fa_f32_f16, N : num](@test_value(2) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(457),
+    /* overloads */ OverloadIndex(469),
   },
   {
     /* [73] */
@@ -12280,143 +12656,143 @@
     /* fn select[T : scalar, N : num](vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
     /* fn select[N : num, T : scalar](vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(351),
+    /* overloads */ OverloadIndex(363),
   },
   {
     /* [74] */
     /* fn sign[T : fia_fi32_f16](T) -> T */
     /* fn sign[N : num, T : fia_fi32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(459),
+    /* overloads */ OverloadIndex(471),
   },
   {
     /* [75] */
     /* fn sin[T : fa_f32_f16](@test_value(1.57079632679) T) -> T */
     /* fn sin[N : num, T : fa_f32_f16](@test_value(1.57079632679) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(461),
+    /* overloads */ OverloadIndex(473),
   },
   {
     /* [76] */
     /* fn sinh[T : fa_f32_f16](T) -> T */
     /* fn sinh[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(463),
+    /* overloads */ OverloadIndex(475),
   },
   {
     /* [77] */
     /* fn smoothstep[T : fa_f32_f16](@test_value(2) T, @test_value(4) T, @test_value(3) T) -> T */
     /* fn smoothstep[N : num, T : fa_f32_f16](@test_value(2) vec<N, T>, @test_value(4) vec<N, T>, @test_value(3) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(465),
+    /* overloads */ OverloadIndex(477),
   },
   {
     /* [78] */
     /* fn sqrt[T : fa_f32_f16](T) -> T */
     /* fn sqrt[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(467),
+    /* overloads */ OverloadIndex(479),
   },
   {
     /* [79] */
     /* fn step[T : fa_f32_f16](T, T) -> T */
     /* fn step[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(469),
+    /* overloads */ OverloadIndex(481),
   },
   {
     /* [80] */
     /* fn storageBarrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(543),
+    /* overloads */ OverloadIndex(551),
   },
   {
     /* [81] */
     /* fn tan[T : fa_f32_f16](T) -> T */
     /* fn tan[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(471),
+    /* overloads */ OverloadIndex(483),
   },
   {
     /* [82] */
     /* fn tanh[T : fa_f32_f16](T) -> T */
     /* fn tanh[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(473),
+    /* overloads */ OverloadIndex(485),
   },
   {
     /* [83] */
     /* fn transpose[M : num, N : num, T : fa_f32_f16](mat<M, N, T>) -> mat<N, M, T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(544),
+    /* overloads */ OverloadIndex(552),
   },
   {
     /* [84] */
     /* fn trunc[T : fa_f32_f16](@test_value(1.5) T) -> T */
     /* fn trunc[N : num, T : fa_f32_f16](@test_value(1.5) vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(475),
+    /* overloads */ OverloadIndex(487),
   },
   {
     /* [85] */
     /* fn unpack2x16float(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(545),
+    /* overloads */ OverloadIndex(553),
   },
   {
     /* [86] */
     /* fn unpack2x16snorm(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(546),
+    /* overloads */ OverloadIndex(554),
   },
   {
     /* [87] */
     /* fn unpack2x16unorm(u32) -> vec2<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(547),
+    /* overloads */ OverloadIndex(555),
   },
   {
     /* [88] */
     /* fn unpack4x8snorm(u32) -> vec4<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(548),
+    /* overloads */ OverloadIndex(556),
   },
   {
     /* [89] */
     /* fn unpack4x8unorm(u32) -> vec4<f32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(549),
+    /* overloads */ OverloadIndex(557),
   },
   {
     /* [90] */
     /* fn unpack4xI8(u32) -> vec4<i32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(550),
+    /* overloads */ OverloadIndex(558),
   },
   {
     /* [91] */
     /* fn unpack4xU8(u32) -> vec4<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(551),
+    /* overloads */ OverloadIndex(559),
   },
   {
     /* [92] */
     /* fn workgroupBarrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(543),
+    /* overloads */ OverloadIndex(551),
   },
   {
     /* [93] */
     /* fn workgroupUniformLoad[T : __constructible](ptr<workgroup, T, read_write>) -> T */
     /* fn workgroupUniformLoad[T : iu32](ptr<workgroup, atomic<T>, read_write>) -> T */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(477),
+    /* overloads */ OverloadIndex(489),
   },
   {
     /* [94] */
     /* fn textureBarrier() */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(543),
+    /* overloads */ OverloadIndex(551),
   },
   {
     /* [95] */
@@ -12513,7 +12889,7 @@
     /* fn textureNumSamples[T : fiu32](texture: texture_multisampled_2d<T>) -> u32 */
     /* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> u32 */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(479),
+    /* overloads */ OverloadIndex(491),
   },
   {
     /* [101] */
@@ -12607,7 +12983,7 @@
     /* fn textureSampleBaseClampToEdge(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
     /* fn textureSampleBaseClampToEdge(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(481),
+    /* overloads */ OverloadIndex(493),
   },
   {
     /* [108] */
@@ -12668,276 +13044,284 @@
     /* [110] */
     /* fn inputAttachmentLoad[T : fiu32](input_attachment: input_attachment<T>) -> vec4<T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(552),
+    /* overloads */ OverloadIndex(560),
   },
   {
     /* [111] */
     /* fn atomicLoad[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(553),
+    /* overloads */ OverloadIndex(561),
   },
   {
     /* [112] */
     /* fn atomicStore[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(554),
+    /* overloads */ OverloadIndex(562),
   },
   {
     /* [113] */
     /* fn atomicAdd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [114] */
     /* fn atomicSub[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [115] */
     /* fn atomicMax[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [116] */
     /* fn atomicMin[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [117] */
     /* fn atomicAnd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [118] */
     /* fn atomicOr[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [119] */
     /* fn atomicXor[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [120] */
     /* fn atomicExchange[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(555),
+    /* overloads */ OverloadIndex(563),
   },
   {
     /* [121] */
     /* fn atomicCompareExchangeWeak[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(556),
+    /* overloads */ OverloadIndex(564),
   },
   {
     /* [122] */
     /* fn subgroupBallot(bool) -> vec4<u32> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(557),
+    /* overloads */ OverloadIndex(565),
   },
   {
     /* [123] */
     /* fn subgroupElect() -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(558),
+    /* overloads */ OverloadIndex(566),
   },
   {
     /* [124] */
     /* fn subgroupBroadcast[T : fiu32_f16](value: T, @const sourceLaneIndex: iu32) -> T */
     /* fn subgroupBroadcast[N : num, T : fiu32_f16](value: vec<N, T>, @const sourceLaneIndex: iu32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(483),
+    /* overloads */ OverloadIndex(495),
   },
   {
     /* [125] */
     /* fn subgroupBroadcastFirst[T : fiu32_f16](value: T) -> T */
     /* fn subgroupBroadcastFirst[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [126] */
     /* fn subgroupShuffle[T : fiu32_f16](value: T, sourceLaneIndex: iu32) -> T */
     /* fn subgroupShuffle[N : num, T : fiu32_f16](value: vec<N, T>, sourceLaneIndex: iu32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(483),
+    /* overloads */ OverloadIndex(495),
   },
   {
     /* [127] */
     /* fn subgroupShuffleXor[T : fiu32_f16](value: T, mask: u32) -> T */
     /* fn subgroupShuffleXor[N : num, T : fiu32_f16](value: vec<N, T>, mask: u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(487),
+    /* overloads */ OverloadIndex(499),
   },
   {
     /* [128] */
     /* fn subgroupShuffleUp[T : fiu32_f16](value: T, delta: u32) -> T */
     /* fn subgroupShuffleUp[N : num, T : fiu32_f16](value: vec<N, T>, delta: u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(489),
+    /* overloads */ OverloadIndex(501),
   },
   {
     /* [129] */
     /* fn subgroupShuffleDown[T : fiu32_f16](value: T, delta: u32) -> T */
     /* fn subgroupShuffleDown[N : num, T : fiu32_f16](value: vec<N, T>, delta: u32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(489),
+    /* overloads */ OverloadIndex(501),
   },
   {
     /* [130] */
     /* fn subgroupAdd[T : fiu32_f16](value: T) -> T */
     /* fn subgroupAdd[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [131] */
     /* fn subgroupInclusiveAdd[T : fiu32_f16](value: T) -> T */
     /* fn subgroupInclusiveAdd[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [132] */
     /* fn subgroupExclusiveAdd[T : fiu32_f16](value: T) -> T */
     /* fn subgroupExclusiveAdd[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [133] */
     /* fn subgroupMul[T : fiu32_f16](value: T) -> T */
     /* fn subgroupMul[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [134] */
     /* fn subgroupInclusiveMul[T : fiu32_f16](value: T) -> T */
     /* fn subgroupInclusiveMul[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [135] */
     /* fn subgroupExclusiveMul[T : fiu32_f16](value: T) -> T */
     /* fn subgroupExclusiveMul[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [136] */
     /* fn subgroupAnd[T : iu32](value: T) -> T */
     /* fn subgroupAnd[N : num, T : iu32](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(491),
+    /* overloads */ OverloadIndex(503),
   },
   {
     /* [137] */
     /* fn subgroupOr[T : iu32](value: T) -> T */
     /* fn subgroupOr[N : num, T : iu32](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(491),
+    /* overloads */ OverloadIndex(503),
   },
   {
     /* [138] */
     /* fn subgroupXor[T : iu32](value: T) -> T */
     /* fn subgroupXor[N : num, T : iu32](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(491),
+    /* overloads */ OverloadIndex(503),
   },
   {
     /* [139] */
     /* fn subgroupMin[T : fiu32_f16](value: T) -> T */
     /* fn subgroupMin[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [140] */
     /* fn subgroupMax[T : fiu32_f16](value: T) -> T */
     /* fn subgroupMax[N : num, T : fiu32_f16](value: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(485),
+    /* overloads */ OverloadIndex(497),
   },
   {
     /* [141] */
     /* fn subgroupAll(bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(559),
+    /* overloads */ OverloadIndex(567),
   },
   {
     /* [142] */
     /* fn subgroupAny(bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(559),
+    /* overloads */ OverloadIndex(567),
   },
   {
     /* [143] */
     /* fn quadBroadcast[T : fiu32_f16](e: T, @const id: iu32) -> T */
     /* fn quadBroadcast[N : num, T : fiu32_f16](e: vec<N, T>, @const id: iu32) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(493),
+    /* overloads */ OverloadIndex(505),
   },
   {
     /* [144] */
     /* fn quadSwapX[T : fiu32_f16](e: T) -> T */
     /* fn quadSwapX[N : num, T : fiu32_f16](e: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(495),
+    /* overloads */ OverloadIndex(507),
   },
   {
     /* [145] */
     /* fn quadSwapY[T : fiu32_f16](e: T) -> T */
     /* fn quadSwapY[N : num, T : fiu32_f16](e: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(495),
+    /* overloads */ OverloadIndex(507),
   },
   {
     /* [146] */
     /* fn quadSwapDiagonal[T : fiu32_f16](e: T) -> T */
     /* fn quadSwapDiagonal[N : num, T : fiu32_f16](e: vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(495),
+    /* overloads */ OverloadIndex(507),
   },
   {
     /* [147] */
     /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num](ptr<storage, runtime_array<S>, readable>, u32, @const bool, @test_value(8) u32) -> T */
     /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<S, AC>, readable>, u32, @const bool, @test_value(8) u32) -> T */
-    /* num overloads */ 2,
-    /* overloads */ OverloadIndex(497),
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : i8, C : num, R : num](ptr<storage, runtime_array<i32>, readable>, u32, @const bool, @test_value(8) u32) -> T */
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : u8, C : num, R : num](ptr<storage, runtime_array<u32>, readable>, u32, @const bool, @test_value(8) u32) -> T */
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : i8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<i32, AC>, readable>, u32, @const bool, @test_value(8) u32) -> T */
+    /* fn subgroupMatrixLoad<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : u8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<u32, AC>, readable>, u32, @const bool, @test_value(8) u32) -> T */
+    /* num overloads */ 6,
+    /* overloads */ OverloadIndex(322),
   },
   {
     /* [148] */
     /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num](ptr<storage, runtime_array<S>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32) */
     /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<S, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32) */
-    /* num overloads */ 2,
-    /* overloads */ OverloadIndex(499),
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : i8, C : num, R : num](ptr<storage, runtime_array<i32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32) */
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : u8, C : num, R : num](ptr<storage, runtime_array<u32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32) */
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : i8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<i32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32) */
+    /* fn subgroupMatrixStore[K : subgroup_matrix_kind, S : u8, C : num, R : num, AC : num](ptr<workgroup_or_storage, array<u32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32) */
+    /* num overloads */ 6,
+    /* overloads */ OverloadIndex(328),
   },
   {
     /* [149] */
     /* fn subgroupMatrixMultiply<TR : subgroup_matrix_elements>[T : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, T, K, R>, subgroup_matrix<subgroup_matrix_kind_right, T, C, K>) -> subgroup_matrix<subgroup_matrix_kind_result, TR, C, R> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(560),
+    /* overloads */ OverloadIndex(568),
   },
   {
     /* [150] */
     /* fn subgroupMatrixMultiplyAccumulate[T : subgroup_matrix_elements, TR : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, T, K, R>, subgroup_matrix<subgroup_matrix_kind_right, T, C, K>, subgroup_matrix<subgroup_matrix_kind_result, TR, C, R>) -> subgroup_matrix<subgroup_matrix_kind_result, TR, C, R> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(561),
+    /* overloads */ OverloadIndex(569),
   },
   {
     /* [151] */
     /* fn __tint_materialize[T](T) -> T */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(562),
+    /* overloads */ OverloadIndex(570),
   },
 };
 
@@ -12946,34 +13330,34 @@
     /* [0] */
     /* op &[S : address_space, T, A : access](ref<S, T, A>) -> ptr<S, T, A> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(563),
+    /* overloads */ OverloadIndex(571),
   },
   {
     /* [1] */
     /* op *[S : address_space, T, A : access](ptr<S, T, A>) -> ref<S, T, A> */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(564),
+    /* overloads */ OverloadIndex(572),
   },
   {
     /* [2] */
     /* op !(bool) -> bool */
     /* op ![N : num](vec<N, bool>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(501),
+    /* overloads */ OverloadIndex(509),
   },
   {
     /* [3] */
     /* op ~[T : ia_iu32](T) -> T */
     /* op ~[T : ia_iu32, N : num](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(503),
+    /* overloads */ OverloadIndex(511),
   },
   {
     /* [4] */
     /* op -[T : fia_fi32_f16](T) -> T */
     /* op -[T : fia_fi32_f16, N : num](vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(505),
+    /* overloads */ OverloadIndex(513),
   },
 };
 constexpr uint8_t kUnaryOperatorAnd = 0;
@@ -12991,7 +13375,7 @@
     /* op +[T : fia_fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* op +[T : fa_f32_f16, N : num, M : num](mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
     /* num overloads */ 5,
-    /* overloads */ OverloadIndex(322),
+    /* overloads */ OverloadIndex(334),
   },
   {
     /* [1] */
@@ -13001,7 +13385,7 @@
     /* op -[T : fia_fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* op -[T : fa_f32_f16, N : num, M : num](mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
     /* num overloads */ 5,
-    /* overloads */ OverloadIndex(327),
+    /* overloads */ OverloadIndex(339),
   },
   {
     /* [2] */
@@ -13024,7 +13408,7 @@
     /* op /[T : fia_fiu32_f16, N : num](vec<N, T>, T) -> vec<N, T> */
     /* op /[T : fia_fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(332),
+    /* overloads */ OverloadIndex(344),
   },
   {
     /* [4] */
@@ -13033,14 +13417,14 @@
     /* op %[T : fia_fiu32_f16, N : num](vec<N, T>, T) -> vec<N, T> */
     /* op %[T : fia_fiu32_f16, N : num](T, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(336),
+    /* overloads */ OverloadIndex(348),
   },
   {
     /* [5] */
     /* op ^[T : ia_iu32](T, T) -> T */
     /* op ^[T : ia_iu32, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(507),
+    /* overloads */ OverloadIndex(515),
   },
   {
     /* [6] */
@@ -13049,7 +13433,7 @@
     /* op &[T : ia_iu32](T, T) -> T */
     /* op &[T : ia_iu32, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(340),
+    /* overloads */ OverloadIndex(352),
   },
   {
     /* [7] */
@@ -13058,75 +13442,75 @@
     /* op |[T : ia_iu32](T, T) -> T */
     /* op |[T : ia_iu32, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
     /* num overloads */ 4,
-    /* overloads */ OverloadIndex(344),
+    /* overloads */ OverloadIndex(356),
   },
   {
     /* [8] */
     /* op &&(bool, bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(565),
+    /* overloads */ OverloadIndex(573),
   },
   {
     /* [9] */
     /* op ||(bool, bool) -> bool */
     /* num overloads */ 1,
-    /* overloads */ OverloadIndex(566),
+    /* overloads */ OverloadIndex(574),
   },
   {
     /* [10] */
     /* op ==[T : scalar](T, T) -> bool */
     /* op ==[T : scalar, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(509),
+    /* overloads */ OverloadIndex(517),
   },
   {
     /* [11] */
     /* op !=[T : scalar](T, T) -> bool */
     /* op !=[T : scalar, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(511),
+    /* overloads */ OverloadIndex(519),
   },
   {
     /* [12] */
     /* op <[T : fia_fiu32_f16](T, T) -> bool */
     /* op <[T : fia_fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(513),
+    /* overloads */ OverloadIndex(521),
   },
   {
     /* [13] */
     /* op >[T : fia_fiu32_f16](T, T) -> bool */
     /* op >[T : fia_fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(515),
+    /* overloads */ OverloadIndex(523),
   },
   {
     /* [14] */
     /* op <=[T : fia_fiu32_f16](T, T) -> bool */
     /* op <=[T : fia_fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(517),
+    /* overloads */ OverloadIndex(525),
   },
   {
     /* [15] */
     /* op >=[T : fia_fiu32_f16](T, T) -> bool */
     /* op >=[T : fia_fiu32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, bool> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(519),
+    /* overloads */ OverloadIndex(527),
   },
   {
     /* [16] */
     /* op <<[T : ia_iu32](T, u32) -> T */
     /* op <<[T : ia_iu32, N : num](vec<N, T>, vec<N, u32>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(521),
+    /* overloads */ OverloadIndex(529),
   },
   {
     /* [17] */
     /* op >>[T : ia_iu32](T, u32) -> T */
     /* op >>[T : ia_iu32, N : num](vec<N, T>, vec<N, u32>) -> vec<N, T> */
     /* num overloads */ 2,
-    /* overloads */ OverloadIndex(523),
+    /* overloads */ OverloadIndex(531),
   },
 };
 constexpr uint8_t kBinaryOperatorPlus = 0;
@@ -13155,7 +13539,7 @@
     /* ctor i32(i32) -> i32 */
     /* conv i32[T : scalar_no_i32](T) -> i32 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(354),
+    /* overloads */ OverloadIndex(366),
   },
   {
     /* [1] */
@@ -13163,7 +13547,7 @@
     /* ctor u32(u32) -> u32 */
     /* conv u32[T : scalar_no_u32](T) -> u32 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(357),
+    /* overloads */ OverloadIndex(369),
   },
   {
     /* [2] */
@@ -13171,7 +13555,7 @@
     /* ctor f32(f32) -> f32 */
     /* conv f32[T : scalar_no_f32](T) -> f32 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(360),
+    /* overloads */ OverloadIndex(372),
   },
   {
     /* [3] */
@@ -13179,7 +13563,7 @@
     /* ctor f16(f16) -> f16 */
     /* conv f16[T : scalar_no_f16](T) -> f16 */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(363),
+    /* overloads */ OverloadIndex(375),
   },
   {
     /* [4] */
@@ -13187,7 +13571,7 @@
     /* ctor bool(bool) -> bool */
     /* conv bool[T : scalar_no_bool](T) -> bool */
     /* num overloads */ 3,
-    /* overloads */ OverloadIndex(366),
+    /* overloads */ OverloadIndex(378),
   },
   {
     /* [5] */
diff --git a/src/tint/lang/wgsl/resolver/subgroup_matrix_test.cc b/src/tint/lang/wgsl/resolver/subgroup_matrix_test.cc
index 927e6c8..a60590b 100644
--- a/src/tint/lang/wgsl/resolver/subgroup_matrix_test.cc
+++ b/src/tint/lang/wgsl/resolver/subgroup_matrix_test.cc
@@ -356,6 +356,50 @@
                 testing::HasSubstr(R"(error: no matching call to 'subgroupMatrixStore)"));
 }
 
+TEST_F(ResolverSubgroupMatrixTest, SubgroupMatrixStore_i8) {
+    Enable(wgsl::Extension::kChromiumExperimentalSubgroupMatrix);
+    auto* buffer = GlobalVar("buffer", storage, read_write, ty.array(ty.i32(), 8_a),
+                             Vector{Group(0_u), Binding(0_u)});
+    auto* call = Call(wgsl::BuiltinFn::kSubgroupMatrixStore, AddressOf(buffer), 0_u,
+                      Call(ty.subgroup_matrix(core::SubgroupMatrixKind::kLeft, ty.i8(), 8u, 8u)),
+                      false, 32_u);
+    Func("foo", Empty, ty.void_(),
+         Vector{
+             CallStmt(call),
+         });
+
+    EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+    auto call_sem = Sem().Get(call)->As<sem::Call>();
+    ASSERT_NE(call_sem, nullptr);
+    auto* target = call_sem->Target()->As<sem::BuiltinFn>();
+    ASSERT_NE(target, nullptr);
+    EXPECT_EQ(target->Fn(), wgsl::BuiltinFn::kSubgroupMatrixStore);
+    EXPECT_TRUE(target->IsSubgroupMatrix());
+}
+
+TEST_F(ResolverSubgroupMatrixTest, SubgroupMatrixStore_u8) {
+    Enable(wgsl::Extension::kChromiumExperimentalSubgroupMatrix);
+    auto* buffer = GlobalVar("buffer", storage, read_write, ty.array(ty.u32(), 8_a),
+                             Vector{Group(0_u), Binding(0_u)});
+    auto* call = Call(wgsl::BuiltinFn::kSubgroupMatrixStore, AddressOf(buffer), 0_u,
+                      Call(ty.subgroup_matrix(core::SubgroupMatrixKind::kLeft, ty.u8(), 8u, 8u)),
+                      false, 32_u);
+    Func("foo", Empty, ty.void_(),
+         Vector{
+             CallStmt(call),
+         });
+
+    EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+    auto call_sem = Sem().Get(call)->As<sem::Call>();
+    ASSERT_NE(call_sem, nullptr);
+    auto* target = call_sem->Target()->As<sem::BuiltinFn>();
+    ASSERT_NE(target, nullptr);
+    EXPECT_EQ(target->Fn(), wgsl::BuiltinFn::kSubgroupMatrixStore);
+    EXPECT_TRUE(target->IsSubgroupMatrix());
+}
+
 TEST_F(ResolverSubgroupMatrixTest, SubgroupMatrixLoad) {
     Enable(wgsl::Extension::kChromiumExperimentalSubgroupMatrix);
     auto* buffer =
@@ -411,6 +455,52 @@
                 testing::HasSubstr(R"(error: no matching call to 'subgroupMatrixLoad)"));
 }
 
+TEST_F(ResolverSubgroupMatrixTest, SubgroupMatrixLoad_i8) {
+    Enable(wgsl::Extension::kChromiumExperimentalSubgroupMatrix);
+    auto* buffer =
+        GlobalVar("buffer", storage, ty.array(ty.i32(), 8_a), Vector{Group(0_u), Binding(0_u)});
+    auto* call = Call(Ident(wgsl::BuiltinFn::kSubgroupMatrixLoad,
+                            ty.subgroup_matrix(core::SubgroupMatrixKind::kLeft, ty.i8(), 8u, 8u)),
+                      AddressOf(buffer), 0_u, false, 32_u);
+    Func("foo", Empty, ty.void_(),
+         Vector{
+             Assign(Phony(), call),
+         });
+
+    EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+    auto call_sem = Sem().Get(call)->As<sem::Call>();
+    ASSERT_NE(call_sem, nullptr);
+    auto* target = call_sem->Target()->As<sem::BuiltinFn>();
+    ASSERT_NE(target, nullptr);
+    EXPECT_EQ(target->Fn(), wgsl::BuiltinFn::kSubgroupMatrixLoad);
+    EXPECT_TRUE(target->ReturnType()->Is<core::type::SubgroupMatrix>());
+    EXPECT_TRUE(target->IsSubgroupMatrix());
+}
+
+TEST_F(ResolverSubgroupMatrixTest, SubgroupMatrixLoad_u8) {
+    Enable(wgsl::Extension::kChromiumExperimentalSubgroupMatrix);
+    auto* buffer =
+        GlobalVar("buffer", storage, ty.array(ty.u32(), 8_a), Vector{Group(0_u), Binding(0_u)});
+    auto* call = Call(Ident(wgsl::BuiltinFn::kSubgroupMatrixLoad,
+                            ty.subgroup_matrix(core::SubgroupMatrixKind::kLeft, ty.u8(), 8u, 8u)),
+                      AddressOf(buffer), 0_u, false, 32_u);
+    Func("foo", Empty, ty.void_(),
+         Vector{
+             Assign(Phony(), call),
+         });
+
+    EXPECT_TRUE(r()->Resolve()) << r()->error();
+
+    auto call_sem = Sem().Get(call)->As<sem::Call>();
+    ASSERT_NE(call_sem, nullptr);
+    auto* target = call_sem->Target()->As<sem::BuiltinFn>();
+    ASSERT_NE(target, nullptr);
+    EXPECT_EQ(target->Fn(), wgsl::BuiltinFn::kSubgroupMatrixLoad);
+    EXPECT_TRUE(target->ReturnType()->Is<core::type::SubgroupMatrix>());
+    EXPECT_TRUE(target->IsSubgroupMatrix());
+}
+
 TEST_F(ResolverSubgroupMatrixTest, SubgroupMatrixMultiply) {
     Enable(wgsl::Extension::kChromiumExperimentalSubgroupMatrix);
     auto* left = Var("left", function, ty("subgroup_matrix_left", ty.f32(), 2_u, 4_u));
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index 3307131..00e62c9 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -683,8 +683,16 @@
 
 @must_use @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<storage, runtime_array<S>, readable>, u32, @const bool, @test_value(8) u32) -> T
 @must_use @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num, AC: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<workgroup_or_storage, array<S, AC>, readable>, u32, @const bool, @test_value(8) u32) -> T
+@must_use @stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<storage, runtime_array<i32>, readable>, u32, @const bool, @test_value(8) u32) -> T
+@must_use @stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<storage, runtime_array<u32>, readable>, u32, @const bool, @test_value(8) u32) -> T
+@must_use @stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num, AC: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<workgroup_or_storage, array<i32, AC>, readable>, u32, @const bool, @test_value(8) u32) -> T
+@must_use @stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num, AC: num) fn subgroupMatrixLoad<T: subgroup_matrix<K, S, C, R> >(ptr<workgroup_or_storage, array<u32, AC>, readable>, u32, @const bool, @test_value(8) u32) -> T
 @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num) fn subgroupMatrixStore(ptr<storage, runtime_array<S>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32)
 @stage("compute") implicit(K: subgroup_matrix_kind, S: fiu32_f16, C: num, R: num, AC: num) fn subgroupMatrixStore(ptr<workgroup_or_storage, array<S, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num) fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num) fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: i8, C: num, R: num, AC: num) fn subgroupMatrixStore(ptr<workgroup_or_storage, array<i32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32)
+@stage("compute") implicit(K: subgroup_matrix_kind, S: u8, C: num, R: num, AC: num) fn subgroupMatrixStore(ptr<workgroup_or_storage, array<u32, AC>, writable>, u32, subgroup_matrix<K, S, C, R>, @const bool, @test_value(8) u32)
 @must_use @stage("compute") implicit(T: subgroup_matrix_elements, C: num, R: num, K: num) fn subgroupMatrixMultiply<TR: subgroup_matrix_elements>(
   subgroup_matrix<subgroup_matrix_kind_left, T, K, R>,
   subgroup_matrix<subgroup_matrix_kind_right, T, C, K>)
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index 798f45d..2293d0d 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -53,7 +53,14 @@
 {{- $b := 0 -}}
 {{- if and (or $overload.CanBeUsedInStage.Fragment $overload.CanBeUsedInStage.Compute) (and $overload.ReturnType (IsDeclarable $overload.ReturnType))}}
 {{-   if (HasPrefix $overload.ReturnType.Target.Name "subgroup_matrix") -}}
+{{-     $return_element_type := Eval "Type" (index $overload.ReturnType.TemplateArguments 1) -}}
+{{-     if eq "i8" $return_element_type -}}
+@group(0) @binding({{$b}}) var<storage, read_write> prevent_dce : array<i32, 1024>;
+{{-     else if eq "u8" $return_element_type -}}
+@group(0) @binding({{$b}}) var<storage, read_write> prevent_dce : array<u32, 1024>;
+{{-     else -}}
 @group(0) @binding({{$b}}) var<storage, read_write> prevent_dce : array<{{ElementType $overload.ReturnType}}, 1024>;
+{{-     end -}}
 {{-   else if and (IsHostShareable $overload.ReturnType) (not (HasPrefix $overload.ReturnType.Target.Name "mat"))}}
 @group(0) @binding({{$b}}) var<storage, read_write> prevent_dce : {{template "Type" $overload.ReturnType -}};
 {{-   else}}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/015e29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/015e29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/03a4db.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl
new file mode 100644
index 0000000..939f451
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_03a4db() -> subgroup_matrix_result<i8, 8, 8>{
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_03a4db(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.spvasm
new file mode 100644
index 0000000..eb02619
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/03a4db.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_03a4db() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_03a4db(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %12, 1u, 8u, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_03a4db = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32>, read> = access %sb_ro, 0u
+    %5:u32 = spirv.array_length %sb_ro, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, i32, read> = access %4, 1u
+        %13:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_result<i8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_03a4db
+    %19:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, i32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/06933f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/06933f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0cc7b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0cc7b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0cc7b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0f48aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0f48aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0f48aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0f7739.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl
new file mode 100644
index 0000000..33f1f4f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_0f7739() -> subgroup_matrix_left<i8, 8, 8>{
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0f7739(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.spvasm
new file mode 100644
index 0000000..a687835
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0f7739.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_0f7739() -> subgroup_matrix_left<i8, 8, 8> {
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0f7739(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %12, 1u, 8u, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_0f7739 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, i32, read_write> = access %4, 1u
+        %13:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_left<i8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_0f7739
+    %19:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, i32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/119c99.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/119c99.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/119c99.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/119c99.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/11bb4b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/11bb4b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/11bb4b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/122298.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl
new file mode 100644
index 0000000..5226bf7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_122298() -> subgroup_matrix_left<i8, 8, 8>{
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_122298(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.spvasm
new file mode 100644
index 0000000..2700871
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/122298.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_122298() -> subgroup_matrix_left<i8, 8, 8> {
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_122298(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:41 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %5, 1u, 8u, 32u
+                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_122298 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32, 1024>, read_write> = access %2, 0u, 0u
+    %5:ptr<storage, i32, read_write> = access %4, 1u
+    %6:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_122298
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/128bf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/128bf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12b63e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/12b63e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12b63e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12ca82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/12ca82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12ca82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12ca82.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/15689c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/15689c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/15689c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1a0572.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/1a0572.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1a0572.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1b3162.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl
new file mode 100644
index 0000000..4ff9a4f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.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, i8, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_1b3162() -> subgroup_matrix_right<i8, 8, 8>{
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_1b3162(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.spvasm
new file mode 100644
index 0000000..e3b43c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/1b3162.wgsl.expected.spvasm
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+
+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_1b3162() -> subgroup_matrix_right<i8, 8, 8> {
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&(arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_1b3162(), false, 64);
+}
+
+Failed to generate SPIR-V: :13:42 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<workgroup, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %4, 1u, 8u, 32u
+                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+:45:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixLoad_1b3162 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %4:ptr<workgroup, i32, read_write> = access %arg_0, 1u
+    %5:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %4, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %7
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %11:bool = gte %idx, 1024u
+        if %11 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %12:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %12, 0i
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %13:u32 = add %idx, 1u
+        next_iteration %13  # -> $B5
+      }
+    }
+    %14:void = workgroupBarrier
+    %15:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_1b3162
+    %16:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %17:ptr<storage, i32, read_write> = access %16, 0u
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/21f2c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/21f2c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/23385e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/23385e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/23385e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/23385e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/23385e.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/297099.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl
new file mode 100644
index 0000000..6d14cd3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_297099() -> subgroup_matrix_result<i8, 8, 8>{
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_297099(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.spvasm
new file mode 100644
index 0000000..5198ebe
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/297099.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_297099() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_297099(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:43 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %5, 1u, 8u, 32u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_297099 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32, 1024>, read_write> = access %2, 0u, 0u
+    %5:ptr<storage, i32, read_write> = access %4, 1u
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_297099
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl
new file mode 100644
index 0000000..89dd107
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_29f533() -> subgroup_matrix_left<u8, 8, 8>{
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_29f533(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.spvasm
new file mode 100644
index 0000000..8395f50
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/29f533.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_29f533() -> subgroup_matrix_left<u8, 8, 8> {
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_29f533(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %12, 1u, 8u, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_29f533 = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, u32, read_write> = access %4, 1u
+        %13:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_left<u8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_29f533
+    %19:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, u32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/30634b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/30634b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/30634b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/3f3203.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl
new file mode 100644
index 0000000..d6aa11b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_3f3203() -> subgroup_matrix_result<u8, 8, 8>{
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_3f3203(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.spvasm
new file mode 100644
index 0000000..8cd8590
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/3f3203.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_3f3203() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_3f3203(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:43 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %5, 1u, 8u, 32u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_3f3203 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32, 1024>, read_write> = access %2, 0u, 0u
+    %5:ptr<storage, u32, read_write> = access %4, 1u
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_3f3203
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/42db25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/42db25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/42db25.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/42db25.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/43c097.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/43c097.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/43c097.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/43c097.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/43c097.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/457d20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/457d20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/457d20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/457d20.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/459957.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/459957.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/459957.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/487a88.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl
new file mode 100644
index 0000000..295b5b2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.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, u8, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_487a88() -> subgroup_matrix_right<u8, 8, 8>{
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_487a88(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.spvasm
new file mode 100644
index 0000000..549d339
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/487a88.wgsl.expected.spvasm
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+
+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_487a88() -> subgroup_matrix_right<u8, 8, 8> {
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&(arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_487a88(), false, 64);
+}
+
+Failed to generate SPIR-V: :13:42 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<workgroup, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %4, 1u, 8u, 32u
+                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+:45:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixLoad_487a88 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %4:ptr<workgroup, u32, read_write> = access %arg_0, 1u
+    %5:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %4, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %7
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %11:bool = gte %idx, 1024u
+        if %11 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %12:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %12, 0u
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %13:u32 = add %idx, 1u
+        next_iteration %13  # -> $B5
+      }
+    }
+    %14:void = workgroupBarrier
+    %15:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_487a88
+    %16:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %17:ptr<storage, u32, read_write> = access %16, 0u
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/4fd336.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/4fd336.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/50572b.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl
new file mode 100644
index 0000000..4a7a0ff
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.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, u8, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_50572b() -> subgroup_matrix_left<u8, 8, 8>{
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_50572b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.spvasm
new file mode 100644
index 0000000..05934ec
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/50572b.wgsl.expected.spvasm
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+
+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_50572b() -> subgroup_matrix_left<u8, 8, 8> {
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&(arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_50572b(), false, 64);
+}
+
+Failed to generate SPIR-V: :13:41 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<workgroup, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %4, 1u, 8u, 32u
+                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+:45:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixLoad_50572b = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %4:ptr<workgroup, u32, read_write> = access %arg_0, 1u
+    %5:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %4, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %7
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %11:bool = gte %idx, 1024u
+        if %11 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %12:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %12, 0u
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %13:u32 = add %idx, 1u
+        next_iteration %13  # -> $B5
+      }
+    }
+    %14:void = workgroupBarrier
+    %15:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_50572b
+    %16:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %17:ptr<storage, u32, read_write> = access %16, 0u
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/5155ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5155ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5155ed.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/52acb0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/52acb0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/52acb0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/567359.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl
new file mode 100644
index 0000000..acf9237
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_567359() -> subgroup_matrix_right<u8, 8, 8>{
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_567359(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.spvasm
new file mode 100644
index 0000000..82a5a5a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/567359.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_567359() -> subgroup_matrix_right<u8, 8, 8> {
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_567359(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %12, 1u, 8u, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_567359 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32>, read> = access %sb_ro, 0u
+    %5:u32 = spirv.array_length %sb_ro, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, u32, read> = access %4, 1u
+        %13:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_right<u8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_567359
+    %19:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, u32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl
new file mode 100644
index 0000000..c2946c4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_58b2f2() -> subgroup_matrix_right<i8, 8, 8>{
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_58b2f2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.spvasm
new file mode 100644
index 0000000..f0457b6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/58b2f2.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_58b2f2() -> subgroup_matrix_right<i8, 8, 8> {
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_58b2f2(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %12, 1u, 8u, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_58b2f2 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32>, read> = access %sb_ro, 0u
+    %5:u32 = spirv.array_length %sb_ro, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, i32, read> = access %4, 1u
+        %13:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_right<i8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_58b2f2
+    %19:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, i32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/5c0896.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5c0896.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5de410.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/5de410.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5de410.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5e2602.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl
new file mode 100644
index 0000000..af46b9a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_5e2602() -> subgroup_matrix_result<u8, 8, 8>{
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5e2602(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.spvasm
new file mode 100644
index 0000000..dc054b2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5e2602.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_5e2602() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5e2602(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %12, 1u, 8u, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_5e2602 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32>, read> = access %sb_ro, 0u
+    %5:u32 = spirv.array_length %sb_ro, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, u32, read> = access %4, 1u
+        %13:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_result<u8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_5e2602
+    %19:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, u32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6432c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6432c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6432c6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6432c6.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/662272.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl
new file mode 100644
index 0000000..9fbc351
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.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, i8, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_662272() -> subgroup_matrix_result<i8, 8, 8>{
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_662272(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.spvasm
new file mode 100644
index 0000000..f8203a7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/662272.wgsl.expected.spvasm
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+
+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_662272() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&(arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_662272(), false, 64);
+}
+
+Failed to generate SPIR-V: :13:43 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<workgroup, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %4, 1u, 8u, 32u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+:45:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixLoad_662272 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %4:ptr<workgroup, i32, read_write> = access %arg_0, 1u
+    %5:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %4, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %7
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %11:bool = gte %idx, 1024u
+        if %11 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %12:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %12, 0i
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %13:u32 = add %idx, 1u
+        next_iteration %13  # -> $B5
+      }
+    }
+    %14:void = workgroupBarrier
+    %15:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_662272
+    %16:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %17:ptr<storage, i32, read_write> = access %16, 0u
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl
new file mode 100644
index 0000000..a3858ae
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_664e6e() -> subgroup_matrix_right<i8, 8, 8>{
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_664e6e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.spvasm
new file mode 100644
index 0000000..3ac3582
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/664e6e.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_664e6e() -> subgroup_matrix_right<i8, 8, 8> {
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_664e6e(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %12, 1u, 8u, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_664e6e = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, i32, read_write> = access %4, 1u
+        %13:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_right<i8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_664e6e
+    %19:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, i32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl
new file mode 100644
index 0000000..1e2994c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_6778bb() -> subgroup_matrix_left<i8, 8, 8>{
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6778bb(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.spvasm
new file mode 100644
index 0000000..3ae4a3c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6778bb.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_6778bb() -> subgroup_matrix_left<i8, 8, 8> {
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6778bb(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:41 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %5, 1u, 8u, 32u
+                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_6778bb = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32, 1024>, read> = access %2, 0u, 0u
+    %5:ptr<storage, i32, read> = access %4, 1u
+    %6:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_6778bb
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6c1e00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6c1e00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6e2773.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6e2773.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6e2773.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6e2773.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/7bacd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/7bacd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bacd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bb257.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/7bb257.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bb257.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bb257.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/7bb257.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/80b778.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/80b778.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/80b778.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/80b778.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/85fc76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/85fc76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/85fc76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/85fc76.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/85fc76.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/865a3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/865a3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865a3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865a3c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/865a3c.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/86df2e.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl
new file mode 100644
index 0000000..3f6bdfc
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_86df2e() -> subgroup_matrix_right<u8, 8, 8>{
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_86df2e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.spvasm
new file mode 100644
index 0000000..ea71039
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/86df2e.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_86df2e() -> subgroup_matrix_right<u8, 8, 8> {
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_86df2e(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:42 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %5, 1u, 8u, 32u
+                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_86df2e = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32, 1024>, read_write> = access %2, 0u, 0u
+    %5:ptr<storage, u32, read_write> = access %4, 1u
+    %6:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_86df2e
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl
new file mode 100644
index 0000000..c4325e9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_8861f0() -> subgroup_matrix_right<i8, 8, 8>{
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_8861f0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.spvasm
new file mode 100644
index 0000000..ebef1e8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8861f0.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_8861f0() -> subgroup_matrix_right<i8, 8, 8> {
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_8861f0(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:42 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %5, 1u, 8u, 32u
+                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_8861f0 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32, 1024>, read_write> = access %2, 0u, 0u
+    %5:ptr<storage, i32, read_write> = access %4, 1u
+    %6:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_8861f0
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/8ec8ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/8ec8ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/91abc9.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl
new file mode 100644
index 0000000..002957b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_91abc9() -> subgroup_matrix_left<i8, 8, 8>{
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_91abc9(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.spvasm
new file mode 100644
index 0000000..ffdf136
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/91abc9.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_91abc9() -> subgroup_matrix_left<i8, 8, 8> {
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_91abc9(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %12, 1u, 8u, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_91abc9 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32>, read> = access %sb_ro, 0u
+    %5:u32 = spirv.array_length %sb_ro, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, i32, read> = access %4, 1u
+        %13:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_left<i8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_91abc9
+    %19:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, i32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/99d2a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/99d2a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/99d2a2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/9bc799.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl
new file mode 100644
index 0000000..87a9934
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_9bc799() -> subgroup_matrix_result<i8, 8, 8>{
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9bc799(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.spvasm
new file mode 100644
index 0000000..784d6ca
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9bc799.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_9bc799() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9bc799(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:43 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %5, 1u, 8u, 32u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_9bc799 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32, 1024>, read> = access %2, 0u, 0u
+    %5:ptr<storage, i32, read> = access %4, 1u
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_9bc799
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl
new file mode 100644
index 0000000..8b47d96
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_9c4b12() -> subgroup_matrix_left<u8, 8, 8>{
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_9c4b12(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.spvasm
new file mode 100644
index 0000000..0534ac9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9c4b12.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_9c4b12() -> subgroup_matrix_left<u8, 8, 8> {
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_9c4b12(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:41 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %5, 1u, 8u, 32u
+                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_9c4b12 = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32, 1024>, read_write> = access %2, 0u, 0u
+    %5:ptr<storage, u32, read_write> = access %4, 1u
+    %6:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_9c4b12
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/9e2d69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9e2d69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9e2d69.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/a13603.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a13603.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a13603.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a798ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a798ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a798ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a798ae.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/a95397.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a95397.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a95397.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/aadc6f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/aadc6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/aadc6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/aadc6f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/ad687c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl
new file mode 100644
index 0000000..5e9f27d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_ad687c() -> subgroup_matrix_left<u8, 8, 8>{
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ad687c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.spvasm
new file mode 100644
index 0000000..18f6c0d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ad687c.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_ad687c() -> subgroup_matrix_left<u8, 8, 8> {
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ad687c(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:41 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %5, 1u, 8u, 32u
+                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_ad687c = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32, 1024>, read> = access %2, 0u, 0u
+    %5:ptr<storage, u32, read> = access %4, 1u
+    %6:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_ad687c
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/b15f59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b15f59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b19701.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl
new file mode 100644
index 0000000..f268971
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_b19701() -> subgroup_matrix_right<i8, 8, 8>{
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b19701(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.spvasm
new file mode 100644
index 0000000..78c13fe
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b19701.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_b19701() -> subgroup_matrix_right<i8, 8, 8> {
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b19701(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:42 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %5, 1u, 8u, 32u
+                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_b19701 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32, 1024>, read> = access %2, 0u, 0u
+    %5:ptr<storage, i32, read> = access %4, 1u
+    %6:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_b19701
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/b354d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b354d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b354d2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b354d2.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/b6f72c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl
new file mode 100644
index 0000000..332ccf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.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, u8, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_b6f72c() -> subgroup_matrix_result<u8, 8, 8>{
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b6f72c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.spvasm
new file mode 100644
index 0000000..bc1b820
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/b6f72c.wgsl.expected.spvasm
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+
+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_b6f72c() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&(arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_b6f72c(), false, 64);
+}
+
+Failed to generate SPIR-V: :13:43 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<workgroup, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %4, 1u, 8u, 32u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+:45:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixLoad_b6f72c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %4:ptr<workgroup, u32, read_write> = access %arg_0, 1u
+    %5:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %4, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %7
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %11:bool = gte %idx, 1024u
+        if %11 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %12:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %12, 0u
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %13:u32 = add %idx, 1u
+        next_iteration %13  # -> $B5
+      }
+    }
+    %14:void = workgroupBarrier
+    %15:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_b6f72c
+    %16:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %17:ptr<storage, u32, read_write> = access %16, 0u
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl
new file mode 100644
index 0000000..0c24c68
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_bcfcb6() -> subgroup_matrix_left<u8, 8, 8>{
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_bcfcb6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.spvasm
new file mode 100644
index 0000000..0d7c575
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/bcfcb6.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_bcfcb6() -> subgroup_matrix_left<u8, 8, 8> {
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_bcfcb6(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %12, 1u, 8u, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_bcfcb6 = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32>, read> = access %sb_ro, 0u
+    %5:u32 = spirv.array_length %sb_ro, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, u32, read> = access %4, 1u
+        %13:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_left<u8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_bcfcb6
+    %19:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, u32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c700ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c700ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c700ca.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c700ca.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/c71ce4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c71ce4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c71ce4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/ca4345.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4345.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4345.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4345.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/ca4539.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/ca4539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cc5556.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/cc5556.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cc5556.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cc5556.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cc5556.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/cce4cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/cce4cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cce4cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2b502.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d2b502.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2b502.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2c77c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d2c77c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2c77c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2c77c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/d6e273.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d6e273.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d6e273.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d6e273.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d6e273.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/d72b92.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl
new file mode 100644
index 0000000..ba7adda
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_d72b92() -> subgroup_matrix_right<u8, 8, 8>{
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d72b92(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.spvasm
new file mode 100644
index 0000000..0b458df
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d72b92.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_d72b92() -> subgroup_matrix_right<u8, 8, 8> {
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d72b92(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:42 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %5, 1u, 8u, 32u
+                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_d72b92 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32, 1024>, read> = access %2, 0u, 0u
+    %5:ptr<storage, u32, read> = access %4, 1u
+    %6:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_d72b92
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d80c87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d80c87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d80c87.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/da5d2c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/da5d2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/da5d2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/da5d2c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/df0754.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl
new file mode 100644
index 0000000..4389cbd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.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, i8, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_df0754() -> subgroup_matrix_left<i8, 8, 8>{
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_df0754(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.spvasm
new file mode 100644
index 0000000..2c25e6f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df0754.wgsl.expected.spvasm
@@ -0,0 +1,98 @@
+SKIP: FAILED
+
+
+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_df0754() -> subgroup_matrix_left<i8, 8, 8> {
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&(arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_df0754(), false, 64);
+}
+
+Failed to generate SPIR-V: :13:41 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<workgroup, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %4, 1u, 8u, 32u
+                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:11:3 note: in block
+  $B2: {
+  ^^^
+
+:45:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixLoad_df0754 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %4:ptr<workgroup, i32, read_write> = access %arg_0, 1u
+    %5:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %4, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %7
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %11:bool = gte %idx, 1024u
+        if %11 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %12:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %12, 0i
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %13:u32 = add %idx, 1u
+        next_iteration %13  # -> $B5
+      }
+    }
+    %14:void = workgroupBarrier
+    %15:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_df0754
+    %16:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %17:ptr<storage, i32, read_write> = access %16, 0u
+    %18:void = spirv.cooperative_matrix_store %17, %15, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/df98ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/df98ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/df98ff.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/e40231.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl
new file mode 100644
index 0000000..91d67e1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_e40231() -> subgroup_matrix_result<i8, 8, 8>{
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e40231(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.spvasm
new file mode 100644
index 0000000..cf5ea7e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e40231.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e40231() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e40231(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %12, 1u, 8u, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_e40231 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, i32, read_write> = access %4, 1u
+        %13:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_result<i8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_e40231
+    %19:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, i32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl
new file mode 100644
index 0000000..335f7a7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_e5381c() -> subgroup_matrix_result<u8, 8, 8>{
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e5381c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.spvasm
new file mode 100644
index 0000000..5e08f62
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5381c.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e5381c() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e5381c(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %12, 1u, 8u, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_e5381c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, u32, read_write> = access %4, 1u
+        %13:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_result<u8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_e5381c
+    %19:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, u32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/e5caba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/e5caba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/e995ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/e995ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/e995ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f364a9.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl
new file mode 100644
index 0000000..ffbbe9b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_f364a9() -> subgroup_matrix_right<u8, 8, 8>{
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&sb_rw.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f364a9(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.spvasm
new file mode 100644
index 0000000..dc40b3d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f364a9.wgsl.expected.spvasm
@@ -0,0 +1,100 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_f364a9() -> subgroup_matrix_right<u8, 8, 8> {
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&(sb_rw.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f364a9(), false, 64);
+}
+
+Failed to generate SPIR-V: :27:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %13:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %12, 1u, 8u, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:43:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:39:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_f364a9 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    %11:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var undef
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %12:ptr<storage, u32, read_write> = access %4, 1u
+        %13:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %12, 1u, 8u, 32u
+        store %11, %13
+        exit_if  # if_1
+      }
+    }
+    %14:subgroup_matrix_right<u8, 8, 8> = load %11
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %14
+    %16:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %16
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %18:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_f364a9
+    %19:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %20:ptr<storage, u32, read_write> = access %19, 0u
+    %21:void = spirv.cooperative_matrix_store %20, %18, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f406f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f406f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f406f6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f406f6.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/f58623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f58623.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f58623.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f792f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f792f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f792f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f86f9f.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl
new file mode 100644
index 0000000..9572b27
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_f86f9f() -> subgroup_matrix_result<u8, 8, 8>{
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&sb_ro.arg_0, 1u, true, 8u);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f86f9f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.spvasm
new file mode 100644
index 0000000..6a1a416
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f86f9f.wgsl.expected.spvasm
@@ -0,0 +1,90 @@
+SKIP: FAILED
+
+
+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_f86f9f() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&(sb_ro.arg_0), 1u, true, 8u);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f86f9f(), false, 64);
+}
+
+Failed to generate SPIR-V: :22:43 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %5, 1u, 8u, 32u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:19:3 note: in block
+  $B2: {
+  ^^^
+
+:33:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_f86f9f = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %4:ptr<storage, array<u32, 1024>, read> = access %2, 0u, 0u
+    %5:ptr<storage, u32, read> = access %4, 1u
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %5, 1u, 8u, 32u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_f86f9f
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f9b989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f9b989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fa3c74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/fa3c74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fa3c74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fa3c74.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/fde5b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/fde5b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fde5b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fde5b5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/00befb.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl
index 31307b3..99e6c58 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl
index d9f6617..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl
index d9f6617..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.glsl
index d9f6617..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl
index d9f6617..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl
index d9f6617..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.msl
index d9f6617..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm
index d9f6617..b59801c 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_00befb() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_00befb(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_00befb = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_00befb
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl
index d9f6617..86292a1 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_00befb() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_00befb(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl
index 8a4ab89..a1d8991 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl
index 26f48bd..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl
index 26f48bd..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl
index 26f48bd..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl
index 26f48bd..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl
index 26f48bd..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl
index 26f48bd..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm
index 26f48bd..a2f4d67 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_0a2c0c() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_0a2c0c(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_0a2c0c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %4:subgroup_matrix_right<f32, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_0a2c0c
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl
index 26f48bd..9663c18 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_0a2c0c() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_0a2c0c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2969da.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl
index 264d2e4..88e26ce 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl
index e5b570d..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl
index e5b570d..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl
index e5b570d..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl
index e5b570d..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl
index e5b570d..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.msl
index e5b570d..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm
index e5b570d..08c4702 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_2d1894() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_2d1894(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_2d1894 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_2d1894
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl
index e5b570d..c1411b3 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_2d1894() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_2d1894(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl
index cd9f010..cef7d49 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl
index 74d1365..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl
index 74d1365..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl
index 74d1365..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl
index 74d1365..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl
index 74d1365..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl
index 74d1365..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm
index 74d1365..31f90c8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_3c0a8c() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_3c0a8c(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_3c0a8c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %4:subgroup_matrix_right<u32, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_3c0a8c
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl
index 74d1365..da58e59 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_3c0a8c() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_3c0a8c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl
index cd38ef2..ccf773c 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl
index 8342a95..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl
index 8342a95..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl
index 8342a95..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl
index 8342a95..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl
index 8342a95..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.msl
index 8342a95..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm
index 8342a95..9b52e66 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_43ad22() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_43ad22(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_43ad22 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_43ad22
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl
index 8342a95..2f900ee 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_43ad22() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_43ad22(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl
index 8930bc7..e5ab168 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl
index 4c54f0a..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl
index 4c54f0a..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.glsl
index 4c54f0a..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl
index 4c54f0a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl
index 4c54f0a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.msl
index 4c54f0a..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/575915.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.spvasm
index 4c54f0a..aefff11 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_575915() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_575915(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_575915 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %4:subgroup_matrix_right<u32, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_575915
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.wgsl
index 4c54f0a..d875fe5 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_575915() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_575915(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl
index f93212b..1aaa315 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl
index b762f5e..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl
index b762f5e..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.glsl
index b762f5e..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl
index b762f5e..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl
index b762f5e..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.msl
index b762f5e..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm
index b762f5e..16a6129 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_654d63() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_654d63(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_654d63 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %4:subgroup_matrix_right<f32, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_654d63
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl
index b762f5e..8554644 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_654d63() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_654d63(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/704b4d.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/72085d.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl
index 57424d8..8343b03 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl
index 34011b4..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl
index 34011b4..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.glsl
index 34011b4..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl
index 34011b4..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl
index 34011b4..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.msl
index 34011b4..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm
index 34011b4..f35da6d 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm
@@ -1,12 +1,77 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_72085d() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_72085d(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_72085d = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %4:subgroup_matrix_right<f16, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_72085d
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl
index 34011b4..0b5a865 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl
@@ -1,12 +1,16 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_72085d() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_72085d(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8648ad.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/8c4df3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl
index 2365abd..f960ff8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl
index a5055cb..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl
index a5055cb..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl
index a5055cb..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl
index a5055cb..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl
index a5055cb..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl
index a5055cb..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm
index a5055cb..da4608e 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm
@@ -1,12 +1,77 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_8c4df3() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_8c4df3(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_8c4df3 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %4:subgroup_matrix_right<f16, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_8c4df3
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl
index a5055cb..69d4b7e 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl
@@ -1,12 +1,16 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_8c4df3() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_8c4df3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/957137.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/d755b4.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl
index 5a8f156..7ceb687 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl
index 3995c13..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl
index 3995c13..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl
index 3995c13..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl
index 3995c13..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl
index 3995c13..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.msl
index 3995c13..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm
index 3995c13..c167cdc 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_d755b4() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_d755b4(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_d755b4 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_d755b4
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl
index 3995c13..61b7430 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_d755b4() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_d755b4(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/da556f.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/e73d14.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl
index 8fbc4e8..49576ae 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl
index 3f073d8..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl
index 3f073d8..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl
index 3f073d8..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl
index 3f073d8..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl
index 3f073d8..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.msl
index 3f073d8..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm
index 3f073d8..4594324 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_e73d14() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_e73d14(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_e73d14 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %4:subgroup_matrix_right<i32, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_e73d14
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl
index 3f073d8..8b681be 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_e73d14() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_e73d14(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl
index 1426a17..e8a2cb2 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl
index cab5697..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl
index cab5697..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl
index cab5697..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl
index cab5697..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl
index cab5697..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl
index cab5697..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm
index cab5697..f49e167 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_f2ffd8() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_f2ffd8(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_f2ffd8 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %4:subgroup_matrix_right<i32, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_f2ffd8
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl
index cab5697..97a6807 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_f2ffd8() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_f2ffd8(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/f51206.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiply/fa5318.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/052cba.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl
index 4118f2a..51e2d4f 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl
index a6940c9..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl
index a6940c9..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl
index a6940c9..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl
index a6940c9..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl
index a6940c9..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl
index a6940c9..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm
index a6940c9..7352df0 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_052cba() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_052cba(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_052cba = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_052cba
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl
index a6940c9..06d2d93e 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_052cba() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_052cba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/285f57.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl
index b873d50..2b06e26 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl
index 7956d37..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl
index 7956d37..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl
index 7956d37..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl
index 7956d37..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl
index 7956d37..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl
index 7956d37..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm
index 7956d37..a6d250f 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_285f57() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_285f57(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_285f57 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %4:subgroup_matrix_right<i32, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_285f57
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl
index 7956d37..591579d 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_285f57() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_285f57(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/539dfd.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl
index 6bcdcbe..86cc67a 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl
index d00d49b..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl
index d00d49b..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl
index d00d49b..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl
index d00d49b..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl
index d00d49b..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl
index d00d49b..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm
index d00d49b..98b2de8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_539dfd() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_539dfd(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_539dfd = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %4:subgroup_matrix_right<u32, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_539dfd
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl
index d00d49b..a716112 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_539dfd() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_539dfd(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl
index 5865e42..d5dec8d 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl
index c1aa042..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl
index c1aa042..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl
index c1aa042..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl
index c1aa042..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl
index c1aa042..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl
index c1aa042..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm
index c1aa042..6aa6a52 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_60df98() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_60df98(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_60df98 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_60df98
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl
index c1aa042..26e8148 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_60df98() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_60df98(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl
index aa7019c..2f905a1 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl
index 6510d61..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl
index 6510d61..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl
index 6510d61..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl
index 6510d61..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl
index 6510d61..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl
index 6510d61..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm
index 6510d61..9ec8be5 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_6373b2() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6373b2(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_6373b2 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %4:subgroup_matrix_right<u32, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_6373b2
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl
index 6510d61..034decb 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_6373b2() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u32, 8, 8>(), subgroup_matrix_right<u32, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6373b2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/6dc794.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl
index 9c72687..c55bfd6 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl
index 7404249..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl
index 7404249..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl
index 7404249..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl
index 7404249..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl
index 7404249..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl
index 7404249..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm
index 7404249..d9802df 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_6dc794() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6dc794(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_6dc794 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %4:subgroup_matrix_right<f32, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_6dc794
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl
index 7404249..4136c74 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_6dc794() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6dc794(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/7243ef.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl
index 7212614..7d13821 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl
index 7039f43..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl
index 7039f43..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl
index 7039f43..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl
index 7039f43..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl
index 7039f43..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl
index 7039f43..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm
index 7039f43..25e9776 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm
@@ -1,12 +1,77 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_7243ef() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7243ef(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_7243ef = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %4:subgroup_matrix_right<f16, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_7243ef
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl
index 7039f43..a5c2a22 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl
@@ -1,12 +1,16 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_7243ef() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7243ef(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl
index 7f3a7ca..23b9465 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl
index eb4fac428..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl
index eb4fac428..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl
index eb4fac428..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl
index eb4fac428..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl
index eb4fac428..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl
index eb4fac428..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm
index eb4fac428..f430110 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm
@@ -1,12 +1,77 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_7e4ad3() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7e4ad3(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_7e4ad3 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %4:subgroup_matrix_right<f16, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_7e4ad3
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl
index eb4fac428..e66a942 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl
@@ -1,12 +1,16 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_7e4ad3() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f16, 8, 8>(), subgroup_matrix_right<f16, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7e4ad3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl
index e4af44b..9719f4a 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl
index f9d78cb..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl
index f9d78cb..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl
index f9d78cb..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl
index f9d78cb..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl
index f9d78cb..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl
index f9d78cb..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm
index f9d78cb..3e1be51 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_8d3bc5() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d3bc5(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_8d3bc5 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_8d3bc5
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl
index f9d78cb..9fd78d0 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_8d3bc5() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<u8, 8, 8>(), subgroup_matrix_right<u8, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d3bc5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl
index 90d8b0b..6bce50b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl
index 7f3ff00..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl
index 7f3ff00..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl
index 7f3ff00..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl
index 7f3ff00..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl
index 7f3ff00..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl
index 7f3ff00..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm
index 7f3ff00..3211af5 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_8d9ee6() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d9ee6(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_8d9ee6 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %5:subgroup_matrix_result<u8, 8, 8> = construct
+    %6:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_8d9ee6
+    %11:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, u32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl
index 7f3ff00..de02f5e 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_8d9ee6() -> subgroup_matrix_result<u8, 8, 8> {
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i8, 8, 8>(), subgroup_matrix_right<i8, 8, 8>(), subgroup_matrix_result<u8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d9ee6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/c06703.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl
index 80ac5b3..9b49f9a 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl
index 9356501..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl
index 9356501..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl
index 9356501..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl
index 9356501..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl
index 9356501..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl
index 9356501..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm
index 9356501..b31c367 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_c06703() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_c06703(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_c06703 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %4:subgroup_matrix_right<i32, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_c06703
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl
index 9356501..e496ed0 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_c06703() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<i32, 8, 8>(), subgroup_matrix_right<i32, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_c06703(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl
index 67a7d15..440fecf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl
index d78052a..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl
index d78052a..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl
index d78052a..117d674 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl
index d78052a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl
index d78052a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl
index d78052a..2725cb8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm
index d78052a..bd6d855 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm
@@ -1,12 +1,76 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_cc4602() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_cc4602(), false, 64);
+}
+
+Failed to generate SPIR-V: :14:43 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:25:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:21:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_cc4602 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %4:subgroup_matrix_right<f32, 8, 8> = construct
+    %5:subgroup_matrix_result<i8, 8, 8> = construct
+    %6:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %3, %4, %5, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %6
+    %8:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %8
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %10:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_cc4602
+    %11:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %12:ptr<storage, i32, read_write> = access %11, 0u
+    %13:void = spirv.cooperative_matrix_store %12, %10, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl
index d78052a..dcb34ca 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl
@@ -1,12 +1,15 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_cc4602() -> subgroup_matrix_result<i8, 8, 8> {
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(subgroup_matrix_left<f32, 8, 8>(), subgroup_matrix_right<f32, 8, 8>(), subgroup_matrix_result<i8, 8, 8>());
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_cc4602(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0268e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
index 11ccbcc..54dfdd6 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<f32, 1024>;
 
 fn subgroupMatrixStore_0268e9() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 754948b..debb047 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<f32, 1024>;
 
 fn subgroupMatrixStore_0268e9() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0268e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0268e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0413f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
index 8b68b1e..e07b499 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
@@ -7,7 +7,7 @@
 var<workgroup> arg_0 : array<f16, 1024>;
 
 fn subgroupMatrixStore_0413f0() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index f04120b..171354f 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
@@ -7,7 +7,7 @@
 var<workgroup> arg_0 : array<f16, 1024>;
 
 fn subgroupMatrixStore_0413f0() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0413f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0413f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1383a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
index 8d8f26d..340bb4e 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
@@ -11,7 +11,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -21,13 +21,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index ac562d3..4256211 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -21,13 +21,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f16, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/1383a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1383a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1433f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
index afab3ec..6eae7f4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<i32, 1024>;
 
 fn subgroupMatrixStore_1433f9() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 5853c93..721dfe6 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<i32, 1024>;
 
 fn subgroupMatrixStore_1433f9() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/1433f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1433f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1433f9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/1433f9.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/152780.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl
new file mode 100644
index 0000000..31d6c8b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, read_write>, u32, subgroup_matrix<result, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_152780() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_152780();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.spvasm
new file mode 100644
index 0000000..ac955c4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/152780.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_152780() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_152780();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_152780 = func():void {
+  $B2: {
+    %3:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %4:subgroup_matrix_result<u8, 8, 8> = construct
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<storage, u32, read_write> = access %3, 1u
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %14:void = call %subgroupMatrixStore_152780
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl
new file mode 100644
index 0000000..563e483
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, read_write>, u32, subgroup_matrix<left, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_2025c4() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_2025c4();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.spvasm
new file mode 100644
index 0000000..d2f3387
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2025c4.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_2025c4() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_2025c4();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_2025c4 = func():void {
+  $B2: {
+    %3:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %4:subgroup_matrix_left<i8, 8, 8> = construct
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<storage, i32, read_write> = access %3, 1u
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %14:void = call %subgroupMatrixStore_2025c4
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index ca27dba..2ed259e 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
@@ -11,7 +11,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -21,13 +21,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index b8c6c44..b514d28 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -21,13 +21,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f16, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/22077b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/22077b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/2d78d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/2d78d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/2d78d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/2d78d3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/2d78d3.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/3ea76e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/3ea76e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/3ea76e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/3ea76e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/3ea76e.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/43b7fd.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl
new file mode 100644
index 0000000..846ef5b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_43b7fd() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..6691c69
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_43b7fd() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.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/43b7fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..6691c69
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_43b7fd() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.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/43b7fd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.spvasm
new file mode 100644
index 0000000..751b3c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/43b7fd.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_43b7fd() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
+
+Failed to generate SPIR-V: :9:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:6:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_43b7fd = func():void {
+  $B2: {
+    %3:subgroup_matrix_right<u8, 8, 8> = construct
+    %4:ptr<workgroup, u32, read_write> = access %arg_0, 1u
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %9:bool = gte %idx, 1024u
+        if %9 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %10:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %10, 0u
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %11:u32 = add %idx, 1u
+        next_iteration %11  # -> $B5
+      }
+    }
+    %12:void = workgroupBarrier
+    %13:void = call %subgroupMatrixStore_43b7fd
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl
new file mode 100644
index 0000000..a468cbd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_443b6c() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..71c6d45
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_443b6c() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.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/443b6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..71c6d45
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_443b6c() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.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/443b6c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.spvasm
new file mode 100644
index 0000000..691ea50
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/443b6c.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_443b6c() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
+
+Failed to generate SPIR-V: :9:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:6:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_443b6c = func():void {
+  $B2: {
+    %3:subgroup_matrix_right<i8, 8, 8> = construct
+    %4:ptr<workgroup, i32, read_write> = access %arg_0, 1u
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %9:bool = gte %idx, 1024u
+        if %9 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %10:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %10, 0i
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %11:u32 = add %idx, 1u
+        next_iteration %11  # -> $B5
+      }
+    }
+    %12:void = workgroupBarrier
+    %13:void = call %subgroupMatrixStore_443b6c
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 3cd598e..f0e4b30 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
@@ -7,7 +7,7 @@
 var<workgroup> arg_0 : array<f16, 1024>;
 
 fn subgroupMatrixStore_45de0c() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index be3441f..0e93278 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
@@ -7,7 +7,7 @@
 var<workgroup> arg_0 : array<f16, 1024>;
 
 fn subgroupMatrixStore_45de0c() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/45de0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/45de0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/476cdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/476cdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/476cdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/476cdf.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/476cdf.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/47cd26.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
index fb31aae..114011d 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index 635531c..ee1770b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/47cd26.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/47cd26.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/47cd26.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/47cd26.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/4980a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
index c39eb85..bbb0f30 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index b1a394a..c1e6530 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/4980a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/4980a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/4980a5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/4980a5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/543411.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/543411.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/543411.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/543411.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/60099d.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl
new file mode 100644
index 0000000..f132c40
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_60099d() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..3be4b6c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.dxc.hlsl
@@ -0,0 +1,41 @@
+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_60099d() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..3be4b6c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.fxc.hlsl
@@ -0,0 +1,41 @@
+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_60099d() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.spvasm
new file mode 100644
index 0000000..6b6bd06
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/60099d.wgsl.expected.spvasm
@@ -0,0 +1,64 @@
+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_60099d() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
+
+Failed to generate SPIR-V: :18:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:14:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_60099d = func():void {
+  $B2: {
+    %3:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u, 0u
+    %4:subgroup_matrix_result<i8, 8, 8> = construct
+    %5:ptr<storage, i32, read_write> = access %3, 1u
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %8:void = call %subgroupMatrixStore_60099d
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index a686185..1329518 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<u32, 1024>;
 
 fn subgroupMatrixStore_62c1b6() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index e143e20..9c04536 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<u32, 1024>;
 
 fn subgroupMatrixStore_62c1b6() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/62c1b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/62c1b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/62c1b6.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/62c1b6.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/6578da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
index 0069ddd..c388423 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<i32, 1024>;
 
 fn subgroupMatrixStore_6578da() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index c15d207..4751d05 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<i32, 1024>;
 
 fn subgroupMatrixStore_6578da() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6578da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6578da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6578da.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6578da.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/6d8de7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6d8de7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6d8de7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/6d8de7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/716ef7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
index e02047d..f3a62cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<u32, 1024>;
 
 fn subgroupMatrixStore_716ef7() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 4e57231..99b1b44 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<u32, 1024>;
 
 fn subgroupMatrixStore_716ef7() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/716ef7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/716ef7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/716ef7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/716ef7.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/72f3af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
index 7a27eb3..81958d9 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index 7e12a99..f8bb8f1 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/72f3af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/72f3af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/72f3af.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/72f3af.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/840822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
index 31e9da9..5ee7c03 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
@@ -7,7 +7,7 @@
 var<workgroup> arg_0 : array<f16, 1024>;
 
 fn subgroupMatrixStore_840822() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index cf52b43..a6af02f 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
@@ -7,7 +7,7 @@
 var<workgroup> arg_0 : array<f16, 1024>;
 
 fn subgroupMatrixStore_840822() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/840822.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/840822.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/85667d.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl
new file mode 100644
index 0000000..6b27ecc
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, read_write>, u32, subgroup_matrix<right, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_85667d() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_85667d();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.spvasm
new file mode 100644
index 0000000..21e6c66
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/85667d.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_85667d() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_85667d();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_85667d = func():void {
+  $B2: {
+    %3:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<storage, i32, read_write> = access %3, 1u
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %14:void = call %subgroupMatrixStore_85667d
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 0d63c09..25ebddc 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<u32, 1024>;
 
 fn subgroupMatrixStore_865820() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 20c5225..018e765 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<u32, 1024>;
 
 fn subgroupMatrixStore_865820() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/865820.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865820.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865820.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/865820.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/8a88da.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl
new file mode 100644
index 0000000..029d891
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_8a88da() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..08fc28b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_8a88da() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.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/8a88da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..08fc28b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_8a88da() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.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/8a88da.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.spvasm
new file mode 100644
index 0000000..9c790fa
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8a88da.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_8a88da() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
+
+Failed to generate SPIR-V: :9:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:6:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_8a88da = func():void {
+  $B2: {
+    %3:subgroup_matrix_result<u8, 8, 8> = construct
+    %4:ptr<workgroup, u32, read_write> = access %arg_0, 1u
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %9:bool = gte %idx, 1024u
+        if %9 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %10:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %10, 0u
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %11:u32 = add %idx, 1u
+        next_iteration %11  # -> $B5
+      }
+    }
+    %12:void = workgroupBarrier
+    %13:void = call %subgroupMatrixStore_8a88da
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/8c59ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/8c59ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/8c59ed.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/8c59ed.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/9991c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
index 7b430ed..1148844 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index d6a33a5..1aae984 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/9991c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9991c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9991c3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9991c3.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/9b9975.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl
new file mode 100644
index 0000000..385454a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_9b9975() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c84f780
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.dxc.hlsl
@@ -0,0 +1,41 @@
+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_9b9975() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c84f780
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.fxc.hlsl
@@ -0,0 +1,41 @@
+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_9b9975() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.spvasm
new file mode 100644
index 0000000..bc469fd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/9b9975.wgsl.expected.spvasm
@@ -0,0 +1,64 @@
+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_9b9975() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
+
+Failed to generate SPIR-V: :18:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:14:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_9b9975 = func():void {
+  $B2: {
+    %3:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u, 0u
+    %4:subgroup_matrix_left<u8, 8, 8> = construct
+    %5:ptr<storage, u32, read_write> = access %3, 1u
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %8:void = call %subgroupMatrixStore_9b9975
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 0daa2c6..f3fdbe3 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<f32, 1024>;
 
 fn subgroupMatrixStore_a3ed32() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 2a7b70d..90c7c1a 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<f32, 1024>;
 
 fn subgroupMatrixStore_a3ed32() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a3ed32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a3ed32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a50ea0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
index 4904d8d..d417f80 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index 3090797..0e48410 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<f32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a50ea0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a50ea0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a50fc4.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl
new file mode 100644
index 0000000..a47257b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, read_write>, u32, subgroup_matrix<right, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_a50fc4() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50fc4();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.spvasm
new file mode 100644
index 0000000..e9d06fb
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/a50fc4.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50fc4() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50fc4();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_a50fc4 = func():void {
+  $B2: {
+    %3:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<storage, u32, read_write> = access %3, 1u
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %14:void = call %subgroupMatrixStore_a50fc4
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 9932f83..d15d7c7 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index dd31e24..1f62019 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<f32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/acb4b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/acb4b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/adbc3e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/adbc3e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/adbc3e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/adbc3e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb2478.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/bb2478.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb2478.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb2478.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb5d49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/bb5d49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb5d49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bb5d49.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bfe106.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/bfe106.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bfe106.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/bfe106.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c18bf3.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl
new file mode 100644
index 0000000..a05c791
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c18bf3() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..a7b88cf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.dxc.hlsl
@@ -0,0 +1,41 @@
+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_c18bf3() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..a7b88cf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.fxc.hlsl
@@ -0,0 +1,41 @@
+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_c18bf3() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.spvasm
new file mode 100644
index 0000000..790e521
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c18bf3.wgsl.expected.spvasm
@@ -0,0 +1,64 @@
+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_c18bf3() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
+
+Failed to generate SPIR-V: :18:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:14:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_c18bf3 = func():void {
+  $B2: {
+    %3:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u, 0u
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %5:ptr<storage, u32, read_write> = access %3, 1u
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %8:void = call %subgroupMatrixStore_c18bf3
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl
new file mode 100644
index 0000000..4271f9a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c266d0() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..96a1a77
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_c266d0() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.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/c266d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..96a1a77
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_c266d0() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.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/c266d0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.spvasm
new file mode 100644
index 0000000..744838d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c266d0.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_c266d0() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
+
+Failed to generate SPIR-V: :9:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:6:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_c266d0 = func():void {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %4:ptr<workgroup, i32, read_write> = access %arg_0, 1u
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %9:bool = gte %idx, 1024u
+        if %9 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %10:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %10, 0i
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %11:u32 = add %idx, 1u
+        next_iteration %11  # -> $B5
+      }
+    }
+    %12:void = workgroupBarrier
+    %13:void = call %subgroupMatrixStore_c266d0
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 8932290..9f69f43 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index a0cbc3a..bf1b1a1 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c28145.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c28145.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c28145.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c28145.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/c4a7ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
index 3906450..555e491 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<f32, 1024>;
 
 fn subgroupMatrixStore_c4a7ce() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 1e3eebe..f79c1d8 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<f32, 1024>;
 
 fn subgroupMatrixStore_c4a7ce() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c4a7ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c4a7ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c9f1a5.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl
new file mode 100644
index 0000000..59ad3db
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c9f1a5() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..089de74
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.dxc.hlsl
@@ -0,0 +1,41 @@
+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_c9f1a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..089de74
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.fxc.hlsl
@@ -0,0 +1,41 @@
+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_c9f1a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.spvasm
new file mode 100644
index 0000000..db8eabf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/c9f1a5.wgsl.expected.spvasm
@@ -0,0 +1,64 @@
+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_c9f1a5() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
+
+Failed to generate SPIR-V: :18:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:14:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_c9f1a5 = func():void {
+  $B2: {
+    %3:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u, 0u
+    %4:subgroup_matrix_result<u8, 8, 8> = construct
+    %5:ptr<storage, u32, read_write> = access %3, 1u
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %8:void = call %subgroupMatrixStore_c9f1a5
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl
new file mode 100644
index 0000000..a650355
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_ca6fe7() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..07213e1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_ca6fe7() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.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/ca6fe7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..07213e1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_ca6fe7() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.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/ca6fe7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.spvasm
new file mode 100644
index 0000000..d86a748
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/ca6fe7.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_ca6fe7() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
+
+Failed to generate SPIR-V: :9:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:6:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_ca6fe7 = func():void {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %4:ptr<workgroup, u32, read_write> = access %arg_0, 1u
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %9:bool = gte %idx, 1024u
+        if %9 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %10:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %10, 0u
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %11:u32 = add %idx, 1u
+        next_iteration %11  # -> $B5
+      }
+    }
+    %12:void = workgroupBarrier
+    %13:void = call %subgroupMatrixStore_ca6fe7
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d55153.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d55153.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d55153.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/d55153.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/e2ecd9.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl
new file mode 100644
index 0000000..2bd3910
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_e2ecd9() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..add4003
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,41 @@
+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_e2ecd9() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..add4003
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,41 @@
+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_e2ecd9() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.spvasm
new file mode 100644
index 0000000..26992c1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e2ecd9.wgsl.expected.spvasm
@@ -0,0 +1,64 @@
+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_e2ecd9() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_right<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
+
+Failed to generate SPIR-V: :18:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:14:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_e2ecd9 = func():void {
+  $B2: {
+    %3:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u, 0u
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %5:ptr<storage, i32, read_write> = access %3, 1u
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %8:void = call %subgroupMatrixStore_e2ecd9
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl
new file mode 100644
index 0000000..140444f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, read_write>, u32, subgroup_matrix<result, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_e4d013() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e4d013();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.spvasm
new file mode 100644
index 0000000..9f4d1ca
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e4d013.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_e4d013() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e4d013();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_e4d013 = func():void {
+  $B2: {
+    %3:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %4:subgroup_matrix_result<i8, 8, 8> = construct
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<storage, i32, read_write> = access %3, 1u
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %14:void = call %subgroupMatrixStore_e4d013
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl
new file mode 100644
index 0000000..93a0978
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_e59232() {
+  subgroupMatrixStore(&arg_0, 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..6bff7f6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.dxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_e59232() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.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/e59232.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..6bff7f6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.fxc.hlsl
@@ -0,0 +1,22 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_e59232() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.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/e59232.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.spvasm
new file mode 100644
index 0000000..135be28
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/e59232.wgsl.expected.spvasm
@@ -0,0 +1,72 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_e59232() {
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_result<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
+
+Failed to generate SPIR-V: :9:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:6:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_e59232 = func():void {
+  $B2: {
+    %3:subgroup_matrix_result<i8, 8, 8> = construct
+    %4:ptr<workgroup, i32, read_write> = access %arg_0, 1u
+    %5:void = spirv.cooperative_matrix_store %4, %3, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B3: {
+    loop [i: $B4, b: $B5, c: $B6] {  # loop_1
+      $B4: {  # initializer
+        next_iteration %tint_local_index  # -> $B5
+      }
+      $B5 (%idx:u32): {  # body
+        %9:bool = gte %idx, 1024u
+        if %9 [t: $B7] {  # if_1
+          $B7: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %10:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %10, 0i
+        continue  # -> $B6
+      }
+      $B6: {  # continuing
+        %11:u32 = add %idx, 1u
+        next_iteration %11  # -> $B5
+      }
+    }
+    %12:void = workgroupBarrier
+    %13:void = call %subgroupMatrixStore_e59232
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 607a423..79b3781 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index 1d95449..a2f24d7 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/eac52e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eac52e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eae7d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/eae7d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eae7d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eae7d8.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/eae7d8.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/f71f4f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
index 180a10b..102c9bd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index 2b3b630..4193e1a3 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -20,13 +20,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u32, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f71f4f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f71f4f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f71f4f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f71f4f.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/f79102.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl
new file mode 100644
index 0000000..e0edd1a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_f79102() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..438b915
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.dxc.hlsl
@@ -0,0 +1,41 @@
+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_f79102() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..438b915
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.fxc.hlsl
@@ -0,0 +1,41 @@
+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_f79102() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl:49:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+  ^^^^^^^^^^^^^^^^^^^
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.spvasm
new file mode 100644
index 0000000..f67da05
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f79102.wgsl.expected.spvasm
@@ -0,0 +1,64 @@
+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_f79102() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<i8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
+
+Failed to generate SPIR-V: :18:15 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:14:3 note: in block
+  $B2: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_f79102 = func():void {
+  $B2: {
+    %3:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u, 0u
+    %4:subgroup_matrix_left<i8, 8, 8> = construct
+    %5:ptr<storage, i32, read_write> = access %3, 1u
+    %6:void = spirv.cooperative_matrix_store %5, %4, 1u, 8u, 32u
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %8:void = call %subgroupMatrixStore_f79102
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl
new file mode 100644
index 0000000..7385a26
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, read_write>, u32, subgroup_matrix<left, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_f96cc1() {
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f96cc1();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.spvasm
new file mode 100644
index 0000000..e7b3d4a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/f96cc1.wgsl.expected.spvasm
@@ -0,0 +1,71 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f96cc1() {
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<u8, 8, 8>(), true, 8u);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f96cc1();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_f96cc1 = func():void {
+  $B2: {
+    %3:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %4:subgroup_matrix_left<u8, 8, 8> = construct
+    %5:u32 = spirv.array_length %sb_rw, 0u
+    %6:u32 = mul %5, 4u
+    %7:u32 = mul 8u, 7u
+    %8:u32 = add 1u, %7
+    %9:u32 = add %8, 8u
+    %10:bool = lte %9, %6
+    if %10 [t: $B3] {  # if_1
+      $B3: {  # true
+        %11:ptr<storage, u32, read_write> = access %3, 1u
+        %12:void = spirv.cooperative_matrix_store %11, %4, 1u, 8u, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %14:void = call %subgroupMatrixStore_f96cc1
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index eaf4cc7..54ddb99 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
@@ -11,7 +11,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -21,13 +21,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
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
index d6dc37a..f19c0b9 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
@@ -11,7 +11,7 @@
 @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);
+  subgroupMatrixStore(&(sb_rw.arg_0), 1u, subgroup_matrix_left<f16, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
@@ -21,13 +21,21 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
-  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&sb_rw.arg_0, 1u, subgroup_matrix_left<f16, 8, 8>(), true, 8u);
   ^^^^^^^^^^^^^^^^^^^
 
 
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/fb7663.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fb7663.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/feca1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
index 97a18f0..a6789cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<i32, 1024>;
 
 fn subgroupMatrixStore_feca1e() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(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
index 7575cf6..91cc292 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
@@ -6,7 +6,7 @@
 var<workgroup> arg_0 : array<i32, 1024>;
 
 fn subgroupMatrixStore_feca1e() {
-  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 1u);
+  subgroupMatrixStore(&(arg_0), 1u, subgroup_matrix_right<i32, 8, 8>(), true, 8u);
 }
 
 @compute @workgroup_size(1)
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/feca1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/feca1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/feca1e.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/literal/subgroupMatrixStore/feca1e.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/015e29.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/015e29.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/015e29.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/015e29.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/03a4db.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl
new file mode 100644
index 0000000..3c7eebe
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_03a4db() -> subgroup_matrix_result<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_03a4db(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/03a4db.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.spvasm
new file mode 100644
index 0000000..feffd65
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/03a4db.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_03a4db() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_03a4db(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %17, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_03a4db = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32>, read> = access %sb_ro, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_ro, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, i32, read> = access %6, %7
+        %18:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_result<i8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_03a4db
+    %24:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, i32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/06933f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/06933f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/06933f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0cc7b0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0cc7b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0cc7b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0f48aa.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0f48aa.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0f48aa.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f48aa.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0f7739.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl
new file mode 100644
index 0000000..a575266
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_0f7739() -> subgroup_matrix_left<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_0f7739(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/0f7739.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.spvasm
new file mode 100644
index 0000000..89be14d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0f7739.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_0f7739() -> subgroup_matrix_left<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_0f7739(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %17, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_0f7739 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_rw, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, i32, read_write> = access %6, %7
+        %18:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_left<i8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_0f7739
+    %24:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, i32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/119c99.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/119c99.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/119c99.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/119c99.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/11bb4b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/11bb4b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/11bb4b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/11bb4b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/122298.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl
new file mode 100644
index 0000000..fe201e6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_122298() -> subgroup_matrix_left<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_122298(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/122298.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.spvasm
new file mode 100644
index 0000000..3b08541
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/122298.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_122298() -> subgroup_matrix_left<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_122298(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %15, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_122298 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32, 1024>, read_write> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, i32, read_write> = access %6, %7
+        %16:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_left<i8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_122298
+    %22:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, i32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/128bf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/128bf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12b63e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/12b63e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12b63e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12b63e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12ca82.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/12ca82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12ca82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/12ca82.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/15689c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/15689c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/15689c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1a0572.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/1a0572.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1a0572.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1a0572.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1b3162.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl
new file mode 100644
index 0000000..aba5569
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.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, i8, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_1b3162() -> subgroup_matrix_right<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_1b3162(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/1b3162.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.spvasm
new file mode 100644
index 0000000..1a175c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/1b3162.wgsl.expected.spvasm
@@ -0,0 +1,3 @@
+SKIP: TIMEOUT
+
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/21f2c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/21f2c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/23385e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/23385e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/23385e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/23385e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/23385e.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/297099.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl
new file mode 100644
index 0000000..4afa79d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_297099() -> subgroup_matrix_result<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_297099(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/297099.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.spvasm
new file mode 100644
index 0000000..0dbdffe
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/297099.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_297099() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_297099(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %15, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_297099 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32, 1024>, read_write> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, i32, read_write> = access %6, %7
+        %16:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_result<i8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_297099
+    %22:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, i32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl
new file mode 100644
index 0000000..1e0391f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_29f533() -> subgroup_matrix_left<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_29f533(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/29f533.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.spvasm
new file mode 100644
index 0000000..92f7a11
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/29f533.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_29f533() -> subgroup_matrix_left<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_29f533(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %17, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_29f533 = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_rw, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, u32, read_write> = access %6, %7
+        %18:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_left<u8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_29f533
+    %24:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, u32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/30634b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/30634b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/30634b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/3f3203.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl
new file mode 100644
index 0000000..376edbc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_3f3203() -> subgroup_matrix_result<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_3f3203(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/3f3203.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.spvasm
new file mode 100644
index 0000000..d4e8520
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/3f3203.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_3f3203() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_3f3203(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %15, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_3f3203 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32, 1024>, read_write> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, u32, read_write> = access %6, %7
+        %16:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_result<u8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_3f3203
+    %22:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, u32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/42db25.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/42db25.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/42db25.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/42db25.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/43c097.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/43c097.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/43c097.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/43c097.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/43c097.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/457d20.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/457d20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/457d20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/457d20.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/459957.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/459957.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/459957.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/459957.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/487a88.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl
new file mode 100644
index 0000000..02674b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.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, u8, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_487a88() -> subgroup_matrix_right<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_487a88(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/487a88.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.spvasm
new file mode 100644
index 0000000..1a175c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/487a88.wgsl.expected.spvasm
@@ -0,0 +1,3 @@
+SKIP: TIMEOUT
+
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/4fd336.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/4fd336.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/4fd336.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/50572b.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl
new file mode 100644
index 0000000..6814cd3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.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, u8, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_50572b() -> subgroup_matrix_left<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_50572b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/50572b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.spvasm
new file mode 100644
index 0000000..1a175c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/50572b.wgsl.expected.spvasm
@@ -0,0 +1,3 @@
+SKIP: TIMEOUT
+
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/5155ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5155ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5155ed.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/52acb0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/52acb0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/52acb0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/52acb0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/567359.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl
new file mode 100644
index 0000000..873a3c4d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_567359() -> subgroup_matrix_right<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_567359(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/567359.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.spvasm
new file mode 100644
index 0000000..f777bb6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/567359.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_567359() -> subgroup_matrix_right<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_567359(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %17, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_567359 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32>, read> = access %sb_ro, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_ro, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, u32, read> = access %6, %7
+        %18:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_right<u8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_567359
+    %24:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, u32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl
new file mode 100644
index 0000000..4ecd6f7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_58b2f2() -> subgroup_matrix_right<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_58b2f2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/58b2f2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.spvasm
new file mode 100644
index 0000000..b1edb7b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/58b2f2.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_58b2f2() -> subgroup_matrix_right<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_58b2f2(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %17, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_58b2f2 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32>, read> = access %sb_ro, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_ro, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, i32, read> = access %6, %7
+        %18:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_right<i8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_58b2f2
+    %24:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, i32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/5c0896.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5c0896.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5c0896.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5de410.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/5de410.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5de410.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/5e2602.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl
new file mode 100644
index 0000000..36f83ec
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_5e2602() -> subgroup_matrix_result<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_5e2602(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/5e2602.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.spvasm
new file mode 100644
index 0000000..6925302
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5e2602.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_5e2602() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_5e2602(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %17, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_5e2602 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32>, read> = access %sb_ro, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_ro, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, u32, read> = access %6, %7
+        %18:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_result<u8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_5e2602
+    %24:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, u32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6432c6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6432c6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6432c6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6432c6.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/662272.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl
new file mode 100644
index 0000000..200c02a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.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, i8, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_662272() -> subgroup_matrix_result<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_662272(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/662272.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.spvasm
new file mode 100644
index 0000000..1a175c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/662272.wgsl.expected.spvasm
@@ -0,0 +1,3 @@
+SKIP: TIMEOUT
+
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl
new file mode 100644
index 0000000..8934a30
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_664e6e() -> subgroup_matrix_right<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_664e6e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/664e6e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.spvasm
new file mode 100644
index 0000000..a42779b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/664e6e.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_664e6e() -> subgroup_matrix_right<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_664e6e(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %17, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_664e6e = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_rw, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, i32, read_write> = access %6, %7
+        %18:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_right<i8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_664e6e
+    %24:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, i32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl
new file mode 100644
index 0000000..3489a33
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_6778bb() -> subgroup_matrix_left<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_6778bb(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/6778bb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.spvasm
new file mode 100644
index 0000000..427adde
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6778bb.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_6778bb() -> subgroup_matrix_left<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_6778bb(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %15, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_6778bb = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32, 1024>, read> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, i32, read> = access %6, %7
+        %16:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_left<i8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_6778bb
+    %22:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, i32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6c1e00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6c1e00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6e2773.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6e2773.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6e2773.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6e2773.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/7bacd3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/7bacd3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bacd3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bacd3.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bb257.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/7bb257.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bb257.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/7bb257.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/7bb257.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/80b778.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/80b778.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/80b778.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/80b778.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/85fc76.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/85fc76.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/85fc76.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/85fc76.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/85fc76.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/865a3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/865a3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865a3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865a3c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/865a3c.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/86df2e.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl
new file mode 100644
index 0000000..b5e0bd5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_86df2e() -> subgroup_matrix_right<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_86df2e(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/86df2e.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.spvasm
new file mode 100644
index 0000000..592ab46
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/86df2e.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_86df2e() -> subgroup_matrix_right<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_86df2e(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %15, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_86df2e = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32, 1024>, read_write> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, u32, read_write> = access %6, %7
+        %16:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_right<u8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_86df2e
+    %22:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, u32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl
new file mode 100644
index 0000000..c383d6a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_8861f0() -> subgroup_matrix_right<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_8861f0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8861f0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.spvasm
new file mode 100644
index 0000000..e53b1f5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8861f0.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_8861f0() -> subgroup_matrix_right<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_8861f0(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %15, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_8861f0 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32, 1024>, read_write> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, i32, read_write> = access %6, %7
+        %16:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_right<i8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_8861f0
+    %22:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, i32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/8ec8ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/8ec8ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/8ec8ba.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/91abc9.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl
new file mode 100644
index 0000000..2a0460e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_91abc9() -> subgroup_matrix_left<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_91abc9(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/91abc9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.spvasm
new file mode 100644
index 0000000..3879830
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/91abc9.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_91abc9() -> subgroup_matrix_left<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 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_91abc9(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %17, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_91abc9 = func():subgroup_matrix_left<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32>, read> = access %sb_ro, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_ro, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, i32, read> = access %6, %7
+        %18:subgroup_matrix_left<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<i8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_left<i8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_left<i8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_left<i8, 8, 8> = call %subgroupMatrixLoad_91abc9
+    %24:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, i32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/99d2a2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/99d2a2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/99d2a2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/99d2a2.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/9bc799.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl
new file mode 100644
index 0000000..996d21b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_9bc799() -> subgroup_matrix_result<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_9bc799(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9bc799.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.spvasm
new file mode 100644
index 0000000..a3b88ce
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9bc799.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_9bc799() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_9bc799(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %15, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_9bc799 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32, 1024>, read> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, i32, read> = access %6, %7
+        %16:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_result<i8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_9bc799
+    %22:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, i32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl
new file mode 100644
index 0000000..e787243
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_9c4b12() -> subgroup_matrix_left<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_9c4b12(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9c4b12.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.spvasm
new file mode 100644
index 0000000..19274f8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9c4b12.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_9c4b12() -> subgroup_matrix_left<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_9c4b12(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %15, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_9c4b12 = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32, 1024>, read_write> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, u32, read_write> = access %6, %7
+        %16:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_left<u8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_9c4b12
+    %22:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, u32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/9e2d69.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9e2d69.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9e2d69.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/9e2d69.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/a13603.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a13603.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a13603.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a13603.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a798ae.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a798ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a798ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a798ae.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/a95397.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a95397.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a95397.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/aadc6f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/aadc6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/aadc6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/aadc6f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/ad687c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl
new file mode 100644
index 0000000..888c79c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_ad687c() -> subgroup_matrix_left<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_ad687c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ad687c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.spvasm
new file mode 100644
index 0000000..6bcfe5c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ad687c.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_ad687c() -> subgroup_matrix_left<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_ad687c(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %15, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_ad687c = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32, 1024>, read> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, u32, read> = access %6, %7
+        %16:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_left<u8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_ad687c
+    %22:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, u32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/b15f59.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b15f59.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b15f59.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b19701.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl
new file mode 100644
index 0000000..fb64d2d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.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, i8, 8, 8>>(ptr<storage, array<i32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i8, 8, 8>
+fn subgroupMatrixLoad_b19701() -> subgroup_matrix_right<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_b19701(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b19701.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.spvasm
new file mode 100644
index 0000000..6f366b2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b19701.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_b19701() -> subgroup_matrix_right<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i8, 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_b19701(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>>(ptr<storage, i32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %15, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_b19701 = func():subgroup_matrix_right<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32, 1024>, read> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, i32, read> = access %6, %7
+        %16:subgroup_matrix_right<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<i8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_right<i8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_right<i8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_right<i8, 8, 8> = call %subgroupMatrixLoad_b19701
+    %22:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, i32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/b354d2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b354d2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/b354d2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b354d2.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/b6f72c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl
new file mode 100644
index 0000000..1b30b90
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.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, u8, 8, 8>>(ptr<workgroup, array<u32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_b6f72c() -> subgroup_matrix_result<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_b6f72c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/b6f72c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.spvasm
new file mode 100644
index 0000000..1a175c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/b6f72c.wgsl.expected.spvasm
@@ -0,0 +1,3 @@
+SKIP: TIMEOUT
+
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl
new file mode 100644
index 0000000..a115e6d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.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>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u8, 8, 8>
+fn subgroupMatrixLoad_bcfcb6() -> subgroup_matrix_left<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_bcfcb6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/bcfcb6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.spvasm
new file mode 100644
index 0000000..1abd6f3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/bcfcb6.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_bcfcb6() -> subgroup_matrix_left<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_left<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u8, 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_bcfcb6(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:46 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %17, 1u, %9, 32u
+                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_ro:ptr<storage, SB_RO, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_bcfcb6 = func():subgroup_matrix_left<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32>, read> = access %sb_ro, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_ro, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, u32, read> = access %6, %7
+        %18:subgroup_matrix_left<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_left<u8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_left<u8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_left<u8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_left<u8, 8, 8> = call %subgroupMatrixLoad_bcfcb6
+    %24:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, u32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c700ca.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c700ca.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c700ca.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c700ca.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/c71ce4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c71ce4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c71ce4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4345.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/ca4345.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4345.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4345.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4345.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/ca4539.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/ca4539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/ca4539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cc5556.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/cc5556.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cc5556.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cc5556.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cc5556.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/cce4cd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/cce4cd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/cce4cd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/cce4cd.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2b502.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d2b502.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2b502.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2b502.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2c77c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d2c77c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2c77c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d2c77c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d2c77c.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/d6e273.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d6e273.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d6e273.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d6e273.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d6e273.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/d72b92.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl
new file mode 100644
index 0000000..b1676f7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_d72b92() -> subgroup_matrix_right<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_d72b92(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/d72b92.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.spvasm
new file mode 100644
index 0000000..455594c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d72b92.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_d72b92() -> subgroup_matrix_right<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_d72b92(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %15, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_d72b92 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32, 1024>, read> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, u32, read> = access %6, %7
+        %16:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_right<u8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_d72b92
+    %22:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, u32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d80c87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d80c87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d80c87.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/da5d2c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/da5d2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/da5d2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/da5d2c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/df0754.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl
new file mode 100644
index 0000000..e6c147f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.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, i8, 8, 8>>(ptr<workgroup, array<i32, 1024>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i8, 8, 8>
+fn subgroupMatrixLoad_df0754() -> subgroup_matrix_left<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_left<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i8, 8, 8>>(&arg_0, arg_1, arg_2, arg_3);
+  return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_df0754(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/df0754.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.spvasm
new file mode 100644
index 0000000..1a175c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df0754.wgsl.expected.spvasm
@@ -0,0 +1,3 @@
+SKIP: TIMEOUT
+
+test timed out after 2m0s
\ No newline at end of file
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/df98ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/df98ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/df98ff.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/e40231.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl
new file mode 100644
index 0000000..c8c7774
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, i8, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i8, 8, 8>
+fn subgroupMatrixLoad_e40231() -> subgroup_matrix_result<i8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_e40231(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e40231.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.spvasm
new file mode 100644
index 0000000..078cb99
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e40231.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e40231() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i8, 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_e40231(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>>(ptr<storage, i32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %17, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_e40231 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_rw, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, i32, read_write> = access %6, %7
+        %18:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<i8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_result<i8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixLoad_e40231
+    %24:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, i32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl
new file mode 100644
index 0000000..97c7fba
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_e5381c() -> subgroup_matrix_result<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_e5381c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e5381c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.spvasm
new file mode 100644
index 0000000..de589ef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5381c.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e5381c() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_e5381c(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %17, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_e5381c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_rw, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, u32, read_write> = access %6, %7
+        %18:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_result<u8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_e5381c
+    %24:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, u32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/e5caba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/e5caba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/e995ba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/e995ba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/e995ba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e995ba.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f364a9.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl
new file mode 100644
index 0000000..854299e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.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>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, u8, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u8, 8, 8>
+fn subgroupMatrixLoad_f364a9() -> subgroup_matrix_right<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_f364a9(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f364a9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.spvasm
new file mode 100644
index 0000000..b298a45
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f364a9.wgsl.expected.spvasm
@@ -0,0 +1,108 @@
+SKIP: FAILED
+
+
+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>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_f364a9() -> subgroup_matrix_right<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_right<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u8, 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_f364a9(), false, 64);
+}
+
+Failed to generate SPIR-V: :32:47 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>>(ptr<storage, u32, read_write>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %18:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %17, 1u, %9, 32u
+                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:30:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:48:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:44:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_f364a9 = func():subgroup_matrix_right<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = spirv.array_length %sb_rw, 0u
+    %11:u32 = mul %10, 4u
+    %12:u32 = mul %9, 7u
+    %13:u32 = add %7, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, %11
+    %16:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var undef
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %17:ptr<storage, u32, read_write> = access %6, %7
+        %18:subgroup_matrix_right<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_right<u8, 8, 8>> %17, 1u, %9, 32u
+        store %16, %18
+        exit_if  # if_1
+      }
+    }
+    %19:subgroup_matrix_right<u8, 8, 8> = load %16
+    %res:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %19
+    %21:subgroup_matrix_right<u8, 8, 8> = load %res
+    ret %21
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %23:subgroup_matrix_right<u8, 8, 8> = call %subgroupMatrixLoad_f364a9
+    %24:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %25:ptr<storage, u32, read_write> = access %24, 0u
+    %26:void = spirv.cooperative_matrix_store %25, %23, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f406f6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f406f6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f406f6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f406f6.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/f58623.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f58623.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f58623.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f792f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f792f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f792f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f792f5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f86f9f.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl
new file mode 100644
index 0000000..aa279c3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.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, u8, 8, 8>>(ptr<storage, array<u32, 1024>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u8, 8, 8>
+fn subgroupMatrixLoad_f86f9f() -> subgroup_matrix_result<u8, 8, 8>{
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res: subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_f86f9f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..ab752db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f86f9f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.spvasm
new file mode 100644
index 0000000..c77819b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f86f9f.wgsl.expected.spvasm
@@ -0,0 +1,110 @@
+SKIP: FAILED
+
+
+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_f86f9f() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_1 = 1u;
+  const arg_2 = true;
+  var arg_3 = 8u;
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u8, 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_f86f9f(), false, 64);
+}
+
+Failed to generate SPIR-V: :34:48 error: spirv.cooperative_matrix_load: no matching call to 'spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>>(ptr<storage, u32, read>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_load<T  ✗ >(ptr<workgroup' or 'storage, S, read' or 'read_write>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ ) -> T' where:
+      ✗  'T' is 'subgroup_matrix<K, S, C, R>'
+      ✗  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %15, 1u, %9, 32u
+                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:32:7 note: in block
+      $B3: {  # true
+      ^^^
+
+:50:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:46:3 note: in block
+  $B4: {
+  ^^^
+
+note: # Disassembly
+SB_RO = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+sb_ro_block = struct @align(4), @block {
+  inner:SB_RO @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+  %2:ptr<storage, sb_ro_block, read> = var undef @binding_point(0, 1)
+}
+
+%subgroupMatrixLoad_f86f9f = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %arg_3:ptr<function, u32, read_write> = var 8u
+    %6:ptr<storage, array<u32, 1024>, read> = access %2, 0u, 0u
+    %7:u32 = load %arg_1
+    %8:u32 = load %arg_3
+    %9:u32 = max %8, 8u
+    %10:u32 = mul %9, 7u
+    %11:u32 = add %7, %10
+    %12:u32 = add %11, 8u
+    %13:bool = lte %12, 4096u
+    %14:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var undef
+    if %13 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<storage, u32, read> = access %6, %7
+        %16:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_load<subgroup_matrix_result<u8, 8, 8>> %15, 1u, %9, 32u
+        store %14, %16
+        exit_if  # if_1
+      }
+    }
+    %17:subgroup_matrix_result<u8, 8, 8> = load %14
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %17
+    %19:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %19
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixLoad_f86f9f
+    %22:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %23:ptr<storage, u32, read_write> = access %22, 0u
+    %24:void = spirv.cooperative_matrix_store %23, %21, 0u, 64u, 32u
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f9b989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f9b989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fa3c74.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/fa3c74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fa3c74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fa3c74.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/fde5b5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/fde5b5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fde5b5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fde5b5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fde5b5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/00befb.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl
index 3bb590a..5313fec 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl
index 7d6926f..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl
index 7d6926f..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.glsl
index 7d6926f..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl
index 7d6926f..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl
index 7d6926f..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.msl
index 7d6926f..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm
index 7d6926f..f5e26bc 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_00befb() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_00befb(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_00befb = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<u8, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<u8, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = construct
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_00befb
+    %15:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, u32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl
index 7d6926f..2f2eca1 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/00befb.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_00befb() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_00befb(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl
index 2b9f56a..7e50627 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl
index dac4076..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl
index dac4076..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl
index dac4076..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl
index dac4076..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl
index dac4076..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl
index dac4076..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm
index dac4076..56b5c11 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_0a2c0c() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_0a2c0c(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_0a2c0c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<f32, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<f32, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = construct
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_0a2c0c
+    %15:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, u32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl
index dac4076..578eb0e 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/0a2c0c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_0a2c0c() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_0a2c0c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2969da.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2c905b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl
index 6cc7fb5..2701681 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl
index 2b2c55e..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl
index 2b2c55e..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl
index 2b2c55e..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl
index 2b2c55e..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl
index 2b2c55e..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.msl
index 2b2c55e..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm
index 2b2c55e..76e12ea 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_2d1894() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_2d1894(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 3u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_2d1894 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<i8, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<i8, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = construct
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_2d1894
+    %15:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, u32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl
index 2b2c55e..ef7b40e 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/2d1894.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_2d1894() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_2d1894(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl
index 6c1dffc..ed61ad4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl
index ddab039..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl
index ddab039..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl
index ddab039..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl
index ddab039..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl
index ddab039..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl
index ddab039..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm
index ddab039..1f089c9 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_3c0a8c() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_3c0a8c(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_3c0a8c = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<u32, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<u32, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = construct
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_3c0a8c
+    %15:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, u32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl
index ddab039..9482b3a 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/3c0a8c.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_3c0a8c() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_3c0a8c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/3e9b04.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/42abed.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl
index 4665cb5..74082d5 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl
index 2b163ab..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl
index 2b163ab..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl
index 2b163ab..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl
index 2b163ab..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl
index 2b163ab..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.msl
index 2b163ab..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm
index 2b163ab..92d141c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_43ad22() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_43ad22(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 15u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_43ad22 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<i8, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<i8, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = construct
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_43ad22
+    %15:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, i32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl
index 2b163ab..0749b48 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/43ad22.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_43ad22() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_43ad22(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/5677fc.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl
index b056294..52d5b4e 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl
index 306297f..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl
index 306297f..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.glsl
index 306297f..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl
index 306297f..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl
index 306297f..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.msl
index 306297f..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/575915.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.spvasm
index 306297f..be27b16 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_575915() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_575915(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_575915 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<u32, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<u32, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = construct
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_575915
+    %15:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, i32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.wgsl
index 306297f..914dd58 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/575915.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_575915() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_575915(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl
index bed31dc..09bd884 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl
index f544df7..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl
index f544df7..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.glsl
index f544df7..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl
index f544df7..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl
index f544df7..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.msl
index f544df7..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm
index f544df7..e743684 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_654d63() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_654d63(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_654d63 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<f32, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<f32, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = construct
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_654d63
+    %15:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, i32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl
index f544df7..d0ac1b2 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/654d63.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_654d63() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_654d63(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/704b4d.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/72085d.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl
index b349ebb..92bfb99 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl
index 8d58c21..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl
index 8d58c21..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.glsl
index 8d58c21..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl
index 8d58c21..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl
index 8d58c21..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.msl
index 8d58c21..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm
index 8d58c21..21b1e39 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.spvasm
@@ -1,12 +1,83 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_72085d() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_72085d(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_72085d = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f16, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f16, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f16, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<f16, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<f16, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = construct
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_72085d
+    %15:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, u32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl
index 8d58c21..46ee191 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/72085d.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_72085d() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_72085d(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8648ad.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8744bd.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c3aac.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/8c4df3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl
index 0b8ef91..e390320 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl
index a8dd570..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl
index a8dd570..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl
index a8dd570..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl
index a8dd570..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl
index a8dd570..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl
index a8dd570..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm
index a8dd570..bfeb332 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.spvasm
@@ -1,12 +1,83 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_8c4df3() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_8c4df3(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_8c4df3 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f16, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f16, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f16, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<f16, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<f16, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = construct
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_8c4df3
+    %15:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, i32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl
index a8dd570..006246a 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/8c4df3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_8c4df3() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_8c4df3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/957137.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/bf2e54.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/c26fb9.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/d755b4.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl
index 86009c1..b17b3d5 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl
index 8ba45f4..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl
index 8ba45f4..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl
index 8ba45f4..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl
index 8ba45f4..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl
index 8ba45f4..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.msl
index 8ba45f4..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm
index 8ba45f4..f956454 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_d755b4() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_d755b4(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_d755b4 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<u8, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<u8, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = construct
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_d755b4
+    %15:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, i32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl
index 8ba45f4..8cdbb2c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/d755b4.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_d755b4() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_d755b4(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/da556f.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/db4ee8.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/e73d14.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl
index f766338..5e9a521 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: i8>(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl
index 15e064a..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl
index 15e064a..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl
index 15e064a..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl
index 15e064a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl
index 15e064a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.msl
index 15e064a..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm
index 15e064a..e9ed706 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiply_e73d14() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_e73d14(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 15u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_e73d14 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<i32, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<i32, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = construct
+    %10:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiply_e73d14
+    %15:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, i32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl
index 15e064a..b288404 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/e73d14.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiply_e73d14() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiply<i8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_e73d14(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl
index 5e21110..800d4fb 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiply<TR: u8>(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl
index a685ce9..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl
index a685ce9..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl
index a685ce9..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl
index a685ce9..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl
index a685ce9..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl
index a685ce9..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm
index a685ce9..00e6d7a 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.spvasm
@@ -1,12 +1,82 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiply_f2ffd8() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_f2ffd8(), false, 64);
+}
+
+Failed to generate SPIR-V: :18:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 3u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:29:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:25:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiply_f2ffd8 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_left<i32, 8, 8> = load %arg_0
+    %8:subgroup_matrix_right<i32, 8, 8> = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = construct
+    %10:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %7, %8, %9, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %10
+    %12:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %12
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %14:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiply_f2ffd8
+    %15:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %16:ptr<storage, u32, read_write> = access %15, 0u
+    %17:void = spirv.cooperative_matrix_store %16, %14, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl
index a685ce9..7969093 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl.expected.wgsl
@@ -1,12 +1,17 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiply/f2ffd8.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiply_f2ffd8() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiply<u8>(arg_0, arg_1);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiply_f2ffd8(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/f51206.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiply/fa5318.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/052cba.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl
index 273607d..fd42831 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl
index e28bfb2..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl
index e28bfb2..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl
index e28bfb2..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl
index e28bfb2..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl
index e28bfb2..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl
index e28bfb2..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm
index e28bfb2..c7dc42b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_052cba() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_052cba(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_052cba = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<u8, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<u8, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_052cba
+    %17:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, u32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl
index e28bfb2..b0f4597 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/052cba.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_052cba() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_052cba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/071472.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/075302.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/12354d.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/163ab5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/285f57.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl
index 91d7561..cc3ada8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl
index 99ac3b4..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl
index 99ac3b4..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl
index 99ac3b4..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl
index 99ac3b4..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl
index 99ac3b4..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl
index 99ac3b4..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm
index 99ac3b4..f795664 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_285f57() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_285f57(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 3u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_285f57 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<i32, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<i32, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_285f57
+    %17:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, u32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl
index 99ac3b4..f787a9a 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/285f57.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_285f57() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_285f57(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/3ea7db.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/539dfd.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl
index ba3615b..5807680 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl
index 7c4a533..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl
index 7c4a533..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl
index 7c4a533..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl
index 7c4a533..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl
index 7c4a533..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl
index 7c4a533..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm
index 7c4a533..873cd4b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_539dfd() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_539dfd(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_539dfd = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<u32, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<u32, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_539dfd
+    %17:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, i32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl
index 7c4a533..0528df2 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/539dfd.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_539dfd() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_539dfd(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl
index d6739d2..9134eff 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl
index 460448b..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl
index 460448b..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl
index 460448b..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl
index 460448b..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl
index 460448b..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl
index 460448b..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm
index 460448b..5612a2f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_60df98() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_60df98(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 15u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_60df98 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<i8, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<i8, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_60df98
+    %17:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, i32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl
index 460448b..3fdff7a 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/60df98.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_60df98() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_60df98(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl
index 5610818..6c65a1a 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u32, 8, 8>, subgroup_matrix<right, u32, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl
index 0d0f528..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl
index 0d0f528..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl
index 0d0f528..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl
index 0d0f528..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl
index 0d0f528..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl
index 0d0f528..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm
index 0d0f528..a5683fc 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_6373b2() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6373b2(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u32, 8, 8>, subgroup_matrix_right<u32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_6373b2 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<u32, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<u32, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_6373b2
+    %17:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, u32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl
index 0d0f528..12f78b6 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6373b2.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_6373b2() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6373b2(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/676ca8.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/6dc794.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl
index d5a03b8..2ef048b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl
index 36a6806..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl
index 36a6806..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl
index 36a6806..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl
index 36a6806..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl
index 36a6806..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl
index 36a6806..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm
index 36a6806..b2b821f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_6dc794() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6dc794(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_6dc794 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<f32, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<f32, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_6dc794
+    %17:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, u32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl
index 36a6806..9d3f433 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/6dc794.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_6dc794() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_6dc794(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/709578.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/7243ef.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl
index 6e1adc2..50e1777 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl
index 0bdb003..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl
index 0bdb003..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl
index 0bdb003..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl
index 0bdb003..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl
index 0bdb003..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl
index 0bdb003..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm
index 0bdb003..5f34348 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.spvasm
@@ -1,12 +1,86 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_7243ef() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7243ef(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_7243ef = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f16, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f16, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f16, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<f16, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<f16, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 0u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_7243ef
+    %17:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, u32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl
index 0bdb003..3294a6b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl.expected.wgsl
@@ -1,12 +1,19 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7243ef.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_7243ef() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7243ef(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7ceae2.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl
index 54c9f2b..5c9f95b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl
@@ -41,7 +41,7 @@
 enable chromium_experimental_subgroup_matrix;
 
 enable f16;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f16, 8, 8>, subgroup_matrix<right, f16, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl
index 5511a5c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl
index 5511a5c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl
index 5511a5c..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl
index 5511a5c..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl
index 5511a5c..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl
index 5511a5c..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm
index 5511a5c..a3bb2ff 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.spvasm
@@ -1,12 +1,86 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_7e4ad3() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7e4ad3(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f16, 8, 8>, subgroup_matrix_right<f16, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_7e4ad3 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f16, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f16, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f16, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f16, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<f16, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<f16, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_7e4ad3
+    %17:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, i32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl
index 5511a5c..12ac507 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl.expected.wgsl
@@ -1,12 +1,19 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+enable f16;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/7e4ad3.wgsl:44:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_7e4ad3() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f16, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f16, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_7e4ad3(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/877989.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8b907c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl
index aaf81f8..10dbdbe 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, u8, 8, 8>, subgroup_matrix<right, u8, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl
index e34c473..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl
index e34c473..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl
index e34c473..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl
index e34c473..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl
index e34c473..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl
index e34c473..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm
index e34c473..95646f7 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_8d3bc5() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d3bc5(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<u8, 8, 8>, subgroup_matrix_right<u8, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_8d3bc5 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<u8, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<u8, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_8d3bc5
+    %17:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, i32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl
index e34c473..10d8f5b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d3bc5.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_8d3bc5() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<u8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<u8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d3bc5(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl
index 945a98c..c6bbe86 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i8, 8, 8>, subgroup_matrix<right, i8, 8, 8>, subgroup_matrix<result, u8, 8, 8>) -> subgroup_matrix<result, u8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl
index f786eff..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl
index f786eff..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl
index f786eff..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl
index f786eff..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl
index f786eff..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl
index f786eff..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm
index f786eff..cb05099 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_8d9ee6() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d9ee6(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i8, 8, 8>, subgroup_matrix_right<i8, 8, 8>, subgroup_matrix_result<u8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✗ , subgroup_matrix<right, T, C, K>  ✗ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✗  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 3u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<u32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_8d9ee6 = func():subgroup_matrix_result<u8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<i8, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<i8, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<u8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 3u
+    %res:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<u8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<u8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_8d9ee6
+    %17:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, u32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl
index f786eff..b0dc31d 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:62 error: type 'u8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/8d9ee6.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_8d9ee6() -> subgroup_matrix_result<u8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i8, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i8, 8, 8>();
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  var res : subgroup_matrix_result<u8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_8d9ee6(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/9ad4f5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/c06703.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl
index dda1d00..0d9ed4f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, i32, 8, 8>, subgroup_matrix<right, i32, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl
index 6ffd7b8..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl
index 6ffd7b8..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl
index 6ffd7b8..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl
index 6ffd7b8..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl
index 6ffd7b8..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl
index 6ffd7b8..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm
index 6ffd7b8..2d93441 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_c06703() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_c06703(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<i32, 8, 8>, subgroup_matrix_right<i32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 15u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_c06703 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<i32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<i32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<i32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<i32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<i32, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<i32, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 15u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_c06703
+    %17:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, i32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl
index 6ffd7b8..24bd546 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c06703.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_c06703() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<i32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<i32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_c06703(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/c4062a.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl
index e246b6d..bc39b35 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl
@@ -39,7 +39,7 @@
 
 
 enable chromium_experimental_subgroup_matrix;
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
 
 // fn subgroupMatrixMultiplyAccumulate(subgroup_matrix<left, f32, 8, 8>, subgroup_matrix<right, f32, 8, 8>, subgroup_matrix<result, i8, 8, 8>) -> subgroup_matrix<result, i8, 8, 8>
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl
index 44a1f67..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.dxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl
index 44a1f67..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.fxc.hlsl
@@ -1,12 +1,12 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+..\..\src\tint\lang\wgsl\ast\transform\transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+********************************************************************
+*  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: exit status 1
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl
index 44a1f67..117d674 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.glsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl
index 44a1f67..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.dxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl
index 44a1f67..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.ir.fxc.hlsl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl
index 44a1f67..2725cb8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.msl
@@ -1,12 +1,5 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
-
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
+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/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm
index 44a1f67..68fff2c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.spvasm
@@ -1,12 +1,85 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+fn subgroupMatrixMultiplyAccumulate_cc4602() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_cc4602(), false, 64);
+}
+
+Failed to generate SPIR-V: :20:44 error: spirv.cooperative_matrix_mul_add: no matching call to 'spirv.cooperative_matrix_mul_add(subgroup_matrix_left<f32, 8, 8>, subgroup_matrix_right<f32, 8, 8>, subgroup_matrix_result<i8, 8, 8>, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_mul_add(subgroup_matrix<left, T, K, R>  ✓ , subgroup_matrix<right, T, C, K>  ✓ , subgroup_matrix<result, TR, C, R>  ✗ , u32  ✓ ) -> subgroup_matrix<result, TR, C, R>' where:
+      ✓  'T' is 'f32', 'f16', 'u32' or 'i32'
+      ✗  'TR' is 'f32', 'f16', 'u32' or 'i32'
+
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:10:3 note: in block
+  $B2: {
+  ^^^
+
+:31:16 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:3 note: in block
+  $B3: {
+  ^^^
+
+note: # Disassembly
+prevent_dce_block = struct @align(4), @block {
+  inner:array<i32, 1024> @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, prevent_dce_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixMultiplyAccumulate_cc4602 = func():subgroup_matrix_result<i8, 8, 8> {
+  $B2: {
+    %3:subgroup_matrix_left<f32, 8, 8> = construct
+    %arg_0:ptr<function, subgroup_matrix_left<f32, 8, 8>, read_write> = var %3
+    %5:subgroup_matrix_right<f32, 8, 8> = construct
+    %arg_1:ptr<function, subgroup_matrix_right<f32, 8, 8>, read_write> = var %5
+    %7:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %7
+    %9:subgroup_matrix_left<f32, 8, 8> = load %arg_0
+    %10:subgroup_matrix_right<f32, 8, 8> = load %arg_1
+    %11:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %12:subgroup_matrix_result<i8, 8, 8> = spirv.cooperative_matrix_mul_add %9, %10, %11, 12u
+    %res:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %12
+    %14:subgroup_matrix_result<i8, 8, 8> = load %res
+    ret %14
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B3: {
+    %16:subgroup_matrix_result<i8, 8, 8> = call %subgroupMatrixMultiplyAccumulate_cc4602
+    %17:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u
+    %18:ptr<storage, i32, read_write> = access %17, 0u
+    %19:void = spirv.cooperative_matrix_store %18, %16, 0u, 64u, 32u
+    ret
+  }
+}
 
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl
index 44a1f67..3100c18 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl.expected.wgsl
@@ -1,12 +1,18 @@
 SKIP: FAILED
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:62 error: type 'i8' cannot be used in address space 'storage' as it is non-host-shareable
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                                                             ^^^^^^^^^^^^^^^
+enable chromium_experimental_subgroup_matrix;
 
-<dawn>/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/cc4602.wgsl:42:23 note: while instantiating 'var' prevent_dce
-@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i8, 1024>;
-                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
 
+fn subgroupMatrixMultiplyAccumulate_cc4602() -> subgroup_matrix_result<i8, 8, 8> {
+  var arg_0 = subgroup_matrix_left<f32, 8, 8>();
+  var arg_1 = subgroup_matrix_right<f32, 8, 8>();
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  var res : subgroup_matrix_result<i8, 8, 8> = subgroupMatrixMultiplyAccumulate(arg_0, arg_1, arg_2);
+  return res;
+}
 
-tint executable returned error: exit status 1
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixMultiplyAccumulate_cc4602(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/db91bf.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e27d24.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e49afd.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl
index 3cd8b8c..ab752db 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl
index 48f5b71..8f74faf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+..\..\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.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+subgroup matrices are not supported by the GLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+subgroup matrices are not supported by the HLSL backend
 
 tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixMultiplyAccumulate/e7fb3c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0268e9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
index 91d6b24..f7299a2 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 816291a..c22ea8b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0268e9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0268e9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0268e9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0413f0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
index b4fb505..89d0e29 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 64b98b4..1c8fae3 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/0413f0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/0413f0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/0413f0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1383a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
index e7fcd2a..97e7b5f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.dxc.hlsl
@@ -14,7 +14,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -25,11 +25,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index db9a1a0..8fb45f4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.fxc.hlsl
@@ -14,7 +14,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -25,11 +25,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/1383a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1383a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1383a5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1433f9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
index ea97ec6..06fc27f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index da77d62..6cf3cd3 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/1433f9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1433f9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/1433f9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/1433f9.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/152780.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl
new file mode 100644
index 0000000..343f8f8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, read_write>, u32, subgroup_matrix<result, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_152780() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_152780();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/152780.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.spvasm
new file mode 100644
index 0000000..cd9ca20
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/152780.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_152780() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_152780();
+}
+
+Failed to generate SPIR-V: :29:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_152780 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = spirv.array_length %sb_rw, 0u
+    %13:u32 = mul %12, 4u
+    %14:u32 = mul %11, 7u
+    %15:u32 = add %8, %14
+    %16:u32 = add %15, 8u
+    %17:bool = lte %16, %13
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<storage, u32, read_write> = access %7, %8
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:void = call %subgroupMatrixStore_152780
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl
new file mode 100644
index 0000000..e2bac18
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, read_write>, u32, subgroup_matrix<left, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_2025c4() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_2025c4();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/2025c4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.spvasm
new file mode 100644
index 0000000..9c6424d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2025c4.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_2025c4() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_2025c4();
+}
+
+Failed to generate SPIR-V: :29:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_2025c4 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_left<i8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = spirv.array_length %sb_rw, 0u
+    %13:u32 = mul %12, 4u
+    %14:u32 = mul %11, 7u
+    %15:u32 = add %8, %14
+    %16:u32 = add %15, 8u
+    %17:bool = lte %16, %13
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<storage, i32, read_write> = access %7, %8
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:void = call %subgroupMatrixStore_2025c4
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 8b4da1c..f1e9847 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.dxc.hlsl
@@ -14,7 +14,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -25,11 +25,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 84e5559..8f31eef 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.fxc.hlsl
@@ -14,7 +14,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -25,11 +25,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/22077b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/22077b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/22077b.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/2d78d3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/2d78d3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/2d78d3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/2d78d3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/2d78d3.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/3ea76e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/3ea76e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/3ea76e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/3ea76e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/3ea76e.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/43b7fd.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl
new file mode 100644
index 0000000..ab90f8e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_43b7fd() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..43e6cf4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_43b7fd() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.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/43b7fd.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..43e6cf4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_43b7fd() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.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/43b7fd.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/43b7fd.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.spvasm
new file mode 100644
index 0000000..e8d02de
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/43b7fd.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_43b7fd() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_43b7fd();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_43b7fd = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:u32 = load %arg_1
+    %8:subgroup_matrix_right<u8, 8, 8> = load %arg_2
+    %9:u32 = load %arg_4
+    %10:u32 = max %9, 8u
+    %11:u32 = mul %10, 7u
+    %12:u32 = add %7, %11
+    %13:u32 = add %12, 8u
+    %14:bool = lte %13, 4096u
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<workgroup, u32, read_write> = access %arg_0, %7
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration %tint_local_index  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %20:bool = gte %idx, 1024u
+        if %20 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %21:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %21, 0u
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %22:u32 = add %idx, 1u
+        next_iteration %22  # -> $B6
+      }
+    }
+    %23:void = workgroupBarrier
+    %24:void = call %subgroupMatrixStore_43b7fd
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl
new file mode 100644
index 0000000..b46282a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_443b6c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..3884e4b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_443b6c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.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/443b6c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..3884e4b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_443b6c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.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/443b6c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/443b6c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.spvasm
new file mode 100644
index 0000000..f3992af
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/443b6c.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_443b6c() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_443b6c();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_443b6c = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:u32 = load %arg_1
+    %8:subgroup_matrix_right<i8, 8, 8> = load %arg_2
+    %9:u32 = load %arg_4
+    %10:u32 = max %9, 8u
+    %11:u32 = mul %10, 7u
+    %12:u32 = add %7, %11
+    %13:u32 = add %12, 8u
+    %14:bool = lte %13, 4096u
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<workgroup, i32, read_write> = access %arg_0, %7
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration %tint_local_index  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %20:bool = gte %idx, 1024u
+        if %20 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %21:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %21, 0i
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %22:u32 = add %idx, 1u
+        next_iteration %22  # -> $B6
+      }
+    }
+    %23:void = workgroupBarrier
+    %24:void = call %subgroupMatrixStore_443b6c
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 8798db0..4130a72 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 70ad5f9..2c648ca 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/45de0c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/45de0c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/45de0c.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/476cdf.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/476cdf.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/476cdf.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/476cdf.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/476cdf.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/47cd26.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
index 2e0e899..afc0444 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 1ac97c9..0d5ab7d 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/47cd26.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/47cd26.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/47cd26.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/47cd26.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/4980a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
index 572dc27..0f051c9 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 768cea4..930995b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/4980a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/4980a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/4980a5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/4980a5.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/543411.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/543411.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/543411.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/543411.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/60099d.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl
new file mode 100644
index 0000000..0045ea8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_60099d() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..57a05cb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.dxc.hlsl
@@ -0,0 +1,45 @@
+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_60099d() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  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/60099d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..57a05cb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.fxc.hlsl
@@ -0,0 +1,45 @@
+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_60099d() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_result<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  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/60099d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/60099d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.spvasm
new file mode 100644
index 0000000..1d93f62
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/60099d.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+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_60099d() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_60099d();
+}
+
+Failed to generate SPIR-V: :31:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_60099d = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = mul %11, 7u
+    %13:u32 = add %8, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, 4096u
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<storage, i32, read_write> = access %7, %8
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %19:void = call %subgroupMatrixStore_60099d
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index ba8eaff..80bc386 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 45adefd..9448a2c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/62c1b6.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/62c1b6.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/62c1b6.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/62c1b6.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/6578da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
index f09a4f9..3498afe 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index c81e860..7472530 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6578da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6578da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6578da.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6578da.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/6d8de7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/6d8de7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/6d8de7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/6d8de7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/716ef7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
index 652ddde..ed439d8 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index af41227..0e3b7ab 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/716ef7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/716ef7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/716ef7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/716ef7.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/72f3af.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
index 40d8e3c..62683b5 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 70a7956..ed0b232 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/72f3af.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/72f3af.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/72f3af.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/72f3af.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/840822.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
index 8442199..d9d38d4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.dxc.hlsl
@@ -10,7 +10,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index eda65e3..49a458b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.fxc.hlsl
@@ -10,7 +10,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/840822.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/840822.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/840822.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/85667d.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl
new file mode 100644
index 0000000..e229517
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, read_write>, u32, subgroup_matrix<right, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_85667d() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_85667d();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/85667d.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.spvasm
new file mode 100644
index 0000000..321a089
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/85667d.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_85667d() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_85667d();
+}
+
+Failed to generate SPIR-V: :29:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_85667d = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_right<i8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = spirv.array_length %sb_rw, 0u
+    %13:u32 = mul %12, 4u
+    %14:u32 = mul %11, 7u
+    %15:u32 = add %8, %14
+    %16:u32 = add %15, 8u
+    %17:bool = lte %16, %13
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<storage, i32, read_write> = access %7, %8
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:void = call %subgroupMatrixStore_85667d
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 09815b6..dbb7a37 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 241a580..e3ecc7f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/865820.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865820.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/865820.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/865820.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/8a88da.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl
new file mode 100644
index 0000000..6979b29
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_8a88da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..40b7a00
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_8a88da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.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/8a88da.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..40b7a00
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_8a88da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.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/8a88da.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/8a88da.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.spvasm
new file mode 100644
index 0000000..850d4e2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8a88da.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_8a88da() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_8a88da();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_8a88da = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:u32 = load %arg_1
+    %8:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %9:u32 = load %arg_4
+    %10:u32 = max %9, 8u
+    %11:u32 = mul %10, 7u
+    %12:u32 = add %7, %11
+    %13:u32 = add %12, 8u
+    %14:bool = lte %13, 4096u
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<workgroup, u32, read_write> = access %arg_0, %7
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration %tint_local_index  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %20:bool = gte %idx, 1024u
+        if %20 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %21:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %21, 0u
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %22:u32 = add %idx, 1u
+        next_iteration %22  # -> $B6
+      }
+    }
+    %23:void = workgroupBarrier
+    %24:void = call %subgroupMatrixStore_8a88da
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/8c59ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/8c59ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/8c59ed.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/8c59ed.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/9991c3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
index 8134e43..ec36d8d 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 003de50..2e3755c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/9991c3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9991c3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/9991c3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9991c3.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/9b9975.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl
new file mode 100644
index 0000000..c087754
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_9b9975() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..7e1e675
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.dxc.hlsl
@@ -0,0 +1,45 @@
+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_9b9975() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  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/9b9975.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..7e1e675
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.fxc.hlsl
@@ -0,0 +1,45 @@
+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_9b9975() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_left<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  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/9b9975.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/9b9975.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.spvasm
new file mode 100644
index 0000000..daea0df
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/9b9975.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+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_9b9975() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_9b9975();
+}
+
+Failed to generate SPIR-V: :31:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_9b9975 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_left<u8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = mul %11, 7u
+    %13:u32 = add %8, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, 4096u
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<storage, u32, read_write> = access %7, %8
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %19:void = call %subgroupMatrixStore_9b9975
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 5961308..d99edc4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 47f5536..a8b25cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a3ed32.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a3ed32.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a3ed32.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a50ea0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
index 89f90c8..817121c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 78ca0591..05bf325 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/a50ea0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a50ea0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50ea0.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/a50fc4.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl
new file mode 100644
index 0000000..1d4d97b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, read_write>, u32, subgroup_matrix<right, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_a50fc4() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50fc4();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/a50fc4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.spvasm
new file mode 100644
index 0000000..860ba53
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/a50fc4.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_a50fc4() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_a50fc4();
+}
+
+Failed to generate SPIR-V: :29:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_a50fc4 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_right<u8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = spirv.array_length %sb_rw, 0u
+    %13:u32 = mul %12, 4u
+    %14:u32 = mul %11, 7u
+    %15:u32 = add %8, %14
+    %16:u32 = add %15, 8u
+    %17:bool = lte %16, %13
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<storage, u32, read_write> = access %7, %8
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:void = call %subgroupMatrixStore_a50fc4
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 7ab8023..7c271e5 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 2cc165b..cde00ad 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/acb4b7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/acb4b7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/acb4b7.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/adbc3e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/adbc3e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/adbc3e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/adbc3e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb2478.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/bb2478.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb2478.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb2478.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb5d49.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/bb5d49.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bb5d49.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bb5d49.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bfe106.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/bfe106.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/bfe106.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/bfe106.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c18bf3.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl
new file mode 100644
index 0000000..b8750c3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c18bf3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..f3ab6f3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.dxc.hlsl
@@ -0,0 +1,45 @@
+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_c18bf3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  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/c18bf3.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..f3ab6f3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.fxc.hlsl
@@ -0,0 +1,45 @@
+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_c18bf3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_right<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  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/c18bf3.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c18bf3.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.spvasm
new file mode 100644
index 0000000..ea198fc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c18bf3.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+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_c18bf3() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c18bf3();
+}
+
+Failed to generate SPIR-V: :31:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_right<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_c18bf3 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_right<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_right<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_right<u8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = mul %11, 7u
+    %13:u32 = add %8, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, 4096u
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<storage, u32, read_write> = access %7, %8
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %19:void = call %subgroupMatrixStore_c18bf3
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl
new file mode 100644
index 0000000..b24a81a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c266d0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..5510085
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_c266d0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.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/c266d0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..5510085
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_c266d0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.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/c266d0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c266d0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.spvasm
new file mode 100644
index 0000000..c965d69
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c266d0.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_c266d0() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c266d0();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_c266d0 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:u32 = load %arg_1
+    %8:subgroup_matrix_left<i8, 8, 8> = load %arg_2
+    %9:u32 = load %arg_4
+    %10:u32 = max %9, 8u
+    %11:u32 = mul %10, 7u
+    %12:u32 = add %7, %11
+    %13:u32 = add %12, 8u
+    %14:bool = lte %13, 4096u
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<workgroup, i32, read_write> = access %arg_0, %7
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration %tint_local_index  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %20:bool = gte %idx, 1024u
+        if %20 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %21:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %21, 0i
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %22:u32 = add %idx, 1u
+        next_iteration %22  # -> $B6
+      }
+    }
+    %23:void = workgroupBarrier
+    %24:void = call %subgroupMatrixStore_c266d0
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 3c2ec80..51fbf4c 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 990b45c..fb5cdf5 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_result<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c28145.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c28145.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c28145.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c28145.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/c4a7ce.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
index 300a78c..2c48ade 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 18eb5ee..840238f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/c4a7ce.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c4a7ce.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c4a7ce.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/c9f1a5.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl
new file mode 100644
index 0000000..529590a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_c9f1a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..729c4f2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.dxc.hlsl
@@ -0,0 +1,45 @@
+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_c9f1a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  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/c9f1a5.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..729c4f2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.fxc.hlsl
@@ -0,0 +1,45 @@
+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_c9f1a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<u32, 1024>, u32, subgroup_matrix_result<u8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'u8'
+ • '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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+
+  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/c9f1a5.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/c9f1a5.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.spvasm
new file mode 100644
index 0000000..8444a8e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/c9f1a5.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+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_c9f1a5() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_c9f1a5();
+}
+
+Failed to generate SPIR-V: :31:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_result<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<u32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_c9f1a5 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_result<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<u32, 1024>, read_write> = access %1, 0u, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_result<u8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = mul %11, 7u
+    %13:u32 = add %8, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, 4096u
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<storage, u32, read_write> = access %7, %8
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %19:void = call %subgroupMatrixStore_c9f1a5
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl
new file mode 100644
index 0000000..ea891cf
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.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, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_ca6fe7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..36f70db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_ca6fe7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.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/ca6fe7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..36f70db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_ca6fe7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.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/ca6fe7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/ca6fe7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.spvasm
new file mode 100644
index 0000000..bd7e6e1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/ca6fe7.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<u32, 1024>;
+
+fn subgroupMatrixStore_ca6fe7() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_ca6fe7();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<u32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_ca6fe7 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:u32 = load %arg_1
+    %8:subgroup_matrix_left<u8, 8, 8> = load %arg_2
+    %9:u32 = load %arg_4
+    %10:u32 = max %9, 8u
+    %11:u32 = mul %10, 7u
+    %12:u32 = add %7, %11
+    %13:u32 = add %12, 8u
+    %14:bool = lte %13, 4096u
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<workgroup, u32, read_write> = access %arg_0, %7
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration %tint_local_index  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %20:bool = gte %idx, 1024u
+        if %20 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %21:ptr<workgroup, u32, read_write> = access %arg_0, %idx
+        store %21, 0u
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %22:u32 = add %idx, 1u
+        next_iteration %22  # -> $B6
+      }
+    }
+    %23:void = workgroupBarrier
+    %24:void = call %subgroupMatrixStore_ca6fe7
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/d55153.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d55153.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/d55153.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/d55153.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/e2ecd9.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl
new file mode 100644
index 0000000..8a77f5f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_e2ecd9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..563b640
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.dxc.hlsl
@@ -0,0 +1,45 @@
+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_e2ecd9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  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/e2ecd9.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..563b640
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.fxc.hlsl
@@ -0,0 +1,45 @@
+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_e2ecd9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_right<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  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/e2ecd9.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e2ecd9.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.spvasm
new file mode 100644
index 0000000..a3a3e57
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e2ecd9.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+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_e2ecd9() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_right<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e2ecd9();
+}
+
+Failed to generate SPIR-V: :31:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_right<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_e2ecd9 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_right<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_right<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_right<i8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = mul %11, 7u
+    %13:u32 = add %8, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, 4096u
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<storage, i32, read_write> = access %7, %8
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %19:void = call %subgroupMatrixStore_e2ecd9
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl
new file mode 100644
index 0000000..60cd4d5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<i32>, read_write>, u32, subgroup_matrix<result, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_e4d013() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e4d013();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e4d013.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.spvasm
new file mode 100644
index 0000000..f16c3a0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e4d013.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<i32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_e4d013() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e4d013();
+}
+
+Failed to generate SPIR-V: :29:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<i32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_e4d013 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<i32>, read_write> = access %sb_rw, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = spirv.array_length %sb_rw, 0u
+    %13:u32 = mul %12, 4u
+    %14:u32 = mul %11, 7u
+    %15:u32 = add %8, %14
+    %16:u32 = add %15, 8u
+    %17:bool = lte %16, %13
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<storage, i32, read_write> = access %7, %8
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:void = call %subgroupMatrixStore_e4d013
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl
new file mode 100644
index 0000000..dead6e1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_e59232() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..e7057a9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.dxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_e59232() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.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/e59232.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..e7057a9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.fxc.hlsl
@@ -0,0 +1,26 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_e59232() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.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/e59232.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/e59232.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.spvasm
new file mode 100644
index 0000000..7b3d217
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/e59232.wgsl.expected.spvasm
@@ -0,0 +1,92 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+var<workgroup> arg_0 : array<i32, 1024>;
+
+fn subgroupMatrixStore_e59232() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_result<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_e59232();
+}
+
+Failed to generate SPIR-V: :22:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<workgroup, i32, read_write>, subgroup_matrix_result<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:20:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+$B1: {  # root
+  %arg_0:ptr<workgroup, array<i32, 1024>, read_write> = var undef
+}
+
+%subgroupMatrixStore_e59232 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_result<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_result<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:u32 = load %arg_1
+    %8:subgroup_matrix_result<i8, 8, 8> = load %arg_2
+    %9:u32 = load %arg_4
+    %10:u32 = max %9, 8u
+    %11:u32 = mul %10, 7u
+    %12:u32 = add %7, %11
+    %13:u32 = add %12, 8u
+    %14:bool = lte %13, 4096u
+    if %14 [t: $B3] {  # if_1
+      $B3: {  # true
+        %15:ptr<workgroup, i32, read_write> = access %arg_0, %7
+        %16:void = spirv.cooperative_matrix_store %15, %8, 1u, %10, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func(%tint_local_index:u32 [@local_invocation_index]):void {
+  $B4: {
+    loop [i: $B5, b: $B6, c: $B7] {  # loop_1
+      $B5: {  # initializer
+        next_iteration %tint_local_index  # -> $B6
+      }
+      $B6 (%idx:u32): {  # body
+        %20:bool = gte %idx, 1024u
+        if %20 [t: $B8] {  # if_2
+          $B8: {  # true
+            exit_loop  # loop_1
+          }
+        }
+        %21:ptr<workgroup, i32, read_write> = access %arg_0, %idx
+        store %21, 0i
+        continue  # -> $B7
+      }
+      $B7: {  # continuing
+        %22:u32 = add %idx, 1u
+        next_iteration %22  # -> $B6
+      }
+    }
+    %23:void = workgroupBarrier
+    %24:void = call %subgroupMatrixStore_e59232
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index 7be0a60..7bf16c4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index eb40346..2b8d455 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/eac52e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eac52e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eac52e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eae7d8.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.dxc.hlsl
index f38e260..c18405b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.dxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: FAILED
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl
index f5da3d1..e861f88 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.fxc.hlsl
@@ -1,6 +1,7 @@
 SKIP: INVALID
 
-../../src/tint/lang/hlsl/writer/ast_raise/decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
 ********************************************************************
 *  The tint shader compiler has encountered an unexpected error.   *
 *                                                                  *
@@ -8,4 +9,4 @@
 *  crbug.com/tint with the source program that triggered the bug.  *
 ********************************************************************
 
-tint executable returned error: signal: trace/BPT trap
+tint executable returned error: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/eae7d8.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eae7d8.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/eae7d8.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/eae7d8.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/f71f4f.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
index 1d0b74c..214a244 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.dxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 61969eb..97cc19b 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.fxc.hlsl
@@ -13,7 +13,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<u32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -24,11 +24,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/f71f4f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f71f4f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/f71f4f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f71f4f.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+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/f79102.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl
new file mode 100644
index 0000000..6ca69cd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.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, i8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_f79102() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..75c45ef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.dxc.hlsl
@@ -0,0 +1,45 @@
+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_f79102() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  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/f79102.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..75c45ef
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.fxc.hlsl
@@ -0,0 +1,45 @@
+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_f79102() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
+
+Failed to generate: <dawn>/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl:53:3 error: no matching call to 'subgroupMatrixStore(array<i32, 1024>, u32, subgroup_matrix_left<i8, 8, 8>, bool, u32)'
+
+6 candidate functions:
+ • 'subgroupMatrixStore(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✓ , bool  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'i8'
+ • '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(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+
+  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/f79102.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f79102.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.spvasm
new file mode 100644
index 0000000..fcc848f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f79102.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+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_f79102() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<i8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f79102();
+}
+
+Failed to generate SPIR-V: :31:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, i32, read_write>, subgroup_matrix_left<i8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:29:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4) {
+  arg_0:array<i32, 1024> @offset(0)
+}
+
+sb_rw_block = struct @align(4), @block {
+  inner:SB_RW @offset(0)
+}
+
+$B1: {  # root
+  %1:ptr<storage, sb_rw_block, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_f79102 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_left<i8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_left<i8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<i32, 1024>, read_write> = access %1, 0u, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_left<i8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = mul %11, 7u
+    %13:u32 = add %8, %12
+    %14:u32 = add %13, 8u
+    %15:bool = lte %14, 4096u
+    if %15 [t: $B3] {  # if_1
+      $B3: {  # true
+        %16:ptr<storage, i32, read_write> = access %7, %8
+        %17:void = spirv.cooperative_matrix_store %16, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %19:void = call %subgroupMatrixStore_f79102
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl
new file mode 100644
index 0000000..f89317d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.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>,
+};
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixStore(ptr<storage, runtime_array<u32>, read_write>, u32, subgroup_matrix<left, u8, 8, 8>, @const bool, u32)
+fn subgroupMatrixStore_f96cc1() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f96cc1();
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.dxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..c18405b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.fxc.hlsl
@@ -0,0 +1,12 @@
+SKIP: FAILED
+
+..\..\src\tint\lang\hlsl\writer\ast_raise\decompose_memory_access.cc:514 internal compiler error: unexpected non-constant array count
+
+********************************************************************
+*  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: exit status 0xc000001d
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.glsl
new file mode 100644
index 0000000..117d674
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..19e6ec4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.msl
new file mode 100644
index 0000000..2725cb8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+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/f96cc1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.spvasm
new file mode 100644
index 0000000..869ccac
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/f96cc1.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroup_matrix;
+
+struct SB_RW {
+  arg_0 : array<u32>,
+}
+
+@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixStore_f96cc1() {
+  var arg_1 = 1u;
+  var arg_2 = subgroup_matrix_left<u8, 8, 8>();
+  const arg_3 = true;
+  var arg_4 = 8u;
+  subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+  subgroupMatrixStore_f96cc1();
+}
+
+Failed to generate SPIR-V: :29:20 error: spirv.cooperative_matrix_store: no matching call to 'spirv.cooperative_matrix_store(ptr<storage, u32, read_write>, subgroup_matrix_left<u8, 8, 8>, u32, u32, u32)'
+
+1 candidate function:
+ • 'spirv.cooperative_matrix_store(ptr<workgroup' or 'storage, S, write' or 'read_write>  ✓ , subgroup_matrix<K, S, C, R>  ✗ , u32  ✓ , u32  ✓ , u32  ✓ )' where:
+      ✓  'S' is 'f32', 'i32', 'u32' or 'f16'
+
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+:27:7 note: in block
+      $B3: {  # true
+      ^^^
+
+note: # Disassembly
+SB_RW = struct @align(4), @block {
+  arg_0:array<u32> @offset(0)
+}
+
+$B1: {  # root
+  %sb_rw:ptr<storage, SB_RW, read_write> = var undef @binding_point(0, 0)
+}
+
+%subgroupMatrixStore_f96cc1 = func():void {
+  $B2: {
+    %arg_1:ptr<function, u32, read_write> = var 1u
+    %4:subgroup_matrix_left<u8, 8, 8> = construct
+    %arg_2:ptr<function, subgroup_matrix_left<u8, 8, 8>, read_write> = var %4
+    %arg_4:ptr<function, u32, read_write> = var 8u
+    %7:ptr<storage, array<u32>, read_write> = access %sb_rw, 0u
+    %8:u32 = load %arg_1
+    %9:subgroup_matrix_left<u8, 8, 8> = load %arg_2
+    %10:u32 = load %arg_4
+    %11:u32 = max %10, 8u
+    %12:u32 = spirv.array_length %sb_rw, 0u
+    %13:u32 = mul %12, 4u
+    %14:u32 = mul %11, 7u
+    %15:u32 = add %8, %14
+    %16:u32 = add %15, 8u
+    %17:bool = lte %16, %13
+    if %17 [t: $B3] {  # if_1
+      $B3: {  # true
+        %18:ptr<storage, u32, read_write> = access %7, %8
+        %19:void = spirv.cooperative_matrix_store %18, %9, 1u, %11, 32u
+        exit_if  # if_1
+      }
+    }
+    ret
+  }
+}
+%compute_main = @compute @workgroup_size(1i, 1i, 1i) func():void {
+  $B4: {
+    %21:void = call %subgroupMatrixStore_f96cc1
+    ret
+  }
+}
+
+
+tint executable returned error: exit status 1
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
index c819920..017b204 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.dxc.hlsl
@@ -14,7 +14,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -25,11 +25,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
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
index 73864ef..9db51b6 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.fxc.hlsl
@@ -14,7 +14,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_left<f16, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(sb_rw.arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
@@ -25,11 +25,19 @@
 
 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:
+6 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(ptr<storage, array<i32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<storage, array<u32>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<i32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'i8'
+ • 'subgroupMatrixStore(ptr<workgroup' or 'storage, array<u32, AC>, write' or 'read_write>  ✗ , u32  ✓ , subgroup_matrix<K, S, C, R>  ✗ , bool  ✓ , u32  ✓ )' where:
+      ✗  'S' is 'u8'
 
   subgroupMatrixStore(&sb_rw.arg_0, arg_1, arg_2, arg_3, arg_4);
   ^^^^^^^^^^^^^^^^^^^
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/fb7663.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/fb7663.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/fb7663.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/feca1e.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
index 1e67a5f..296971f 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.dxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
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
index 5d01634..4d5c2f9 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.fxc.hlsl
@@ -9,7 +9,7 @@
   var arg_1 = 1u;
   var arg_2 = subgroup_matrix_right<i32, 8, 8>();
   const arg_3 = true;
-  var arg_4 = 1u;
+  var arg_4 = 8u;
   subgroupMatrixStore(&(arg_0), arg_1, arg_2, arg_3, arg_4);
 }
 
diff --git a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.glsl
index cc19bf0..6fd05cf 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.glsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the GLSL backend
+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/feca1e.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
index dda740a..19e6ec4 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.dxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: FAILED
 
-error: subgroup matrices are not supported by the HLSL backend
+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/feca1e.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
index 4709805..554ff33 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.ir.fxc.hlsl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: subgroup matrices are not supported by the HLSL backend
+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/feca1e.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.msl
index 5dba48c..27f93cd 100644
--- a/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.msl
+++ b/test/tint/builtins/gen/var/subgroupMatrixStore/feca1e.wgsl.expected.msl
@@ -1,5 +1,5 @@
 SKIP: INVALID
 
-error: non-float subgroup matrices are not supported by the MSL backend
+non-float subgroup matrices are not supported by the MSL backend
 
 tint executable returned error: exit status 1